Changeset View
Changeset View
Standalone View
Standalone View
intern/ghost/intern/GHOST_SystemX11.cpp
| Show First 20 Lines • Show All 44 Lines • ▼ Show 20 Lines | |||||
| #ifdef WITH_XDND | #ifdef WITH_XDND | ||||
| # include "GHOST_DropTargetX11.h" | # include "GHOST_DropTargetX11.h" | ||||
| #endif | #endif | ||||
| #include "GHOST_Debug.h" | #include "GHOST_Debug.h" | ||||
| #if defined(WITH_GL_EGL) | #if defined(WITH_GL_EGL) | ||||
| # include "GHOST_ContextEGL.h" | # include "GHOST_ContextEGL.h" | ||||
| # include <EGL/eglext.h> | |||||
| #else | #else | ||||
| # include "GHOST_ContextGLX.h" | # include "GHOST_ContextGLX.h" | ||||
| #endif | #endif | ||||
| #ifdef WITH_XF86KEYSYM | #ifdef WITH_XF86KEYSYM | ||||
| # include <X11/XF86keysym.h> | # include <X11/XF86keysym.h> | ||||
| #endif | #endif | ||||
| ▲ Show 20 Lines • Show All 340 Lines • ▼ Show 20 Lines | #if defined(WITH_GL_PROFILE_CORE) | ||||
| if (version_major != NULL && version_major[0] == '1') { | if (version_major != NULL && version_major[0] == '1') { | ||||
| fprintf(stderr, "Error: GLEW version 2.0 and above is required.\n"); | fprintf(stderr, "Error: GLEW version 2.0 and above is required.\n"); | ||||
| abort(); | abort(); | ||||
| } | } | ||||
| } | } | ||||
| #endif | #endif | ||||
| const int profile_mask = | const int profile_mask = | ||||
| #ifdef WITH_GL_EGL | |||||
| # if defined(WITH_GL_PROFILE_CORE) | |||||
| EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT; | |||||
| # elif defined(WITH_GL_PROFILE_COMPAT) | |||||
| EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT; | |||||
| # else | |||||
| # error // must specify either core or compat at build time | |||||
| # endif | |||||
| #else | |||||
| #if defined(WITH_GL_PROFILE_CORE) | # if defined(WITH_GL_PROFILE_CORE) | ||||
| GLX_CONTEXT_CORE_PROFILE_BIT_ARB; | GLX_CONTEXT_CORE_PROFILE_BIT_ARB; | ||||
| #elif defined(WITH_GL_PROFILE_COMPAT) | # elif defined(WITH_GL_PROFILE_COMPAT) | ||||
| GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB; | GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB; | ||||
| #else | # else | ||||
| # error // must specify either core or compat at build time | # error // must specify either core or compat at build time | ||||
| #endif | # endif | ||||
| #endif | |||||
| GHOST_Context *context; | GHOST_Context *context; | ||||
| for (int minor = 5; minor >= 0; --minor) { | for (int minor = 5; minor >= 0; --minor) { | ||||
| #if defined(WITH_GL_EGL) | |||||
| context = new GHOST_ContextEGL(false, | |||||
| EGLNativeWindowType(nullptr), | |||||
| EGLNativeDisplayType(m_display), | |||||
| profile_mask, | |||||
| 4, | |||||
| minor, | |||||
| GHOST_OPENGL_EGL_CONTEXT_FLAGS | | |||||
| (false ? EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR : 0), | |||||
| GHOST_OPENGL_EGL_RESET_NOTIFICATION_STRATEGY, | |||||
| EGL_OPENGL_API); | |||||
| #else | |||||
| context = new GHOST_ContextGLX(false, | context = new GHOST_ContextGLX(false, | ||||
| (Window)NULL, | (Window)NULL, | ||||
| m_display, | m_display, | ||||
| (GLXFBConfig)NULL, | (GLXFBConfig)NULL, | ||||
| profile_mask, | profile_mask, | ||||
| 4, | 4, | ||||
| minor, | minor, | ||||
| GHOST_OPENGL_GLX_CONTEXT_FLAGS | | GHOST_OPENGL_GLX_CONTEXT_FLAGS | | ||||
| (false ? GLX_CONTEXT_DEBUG_BIT_ARB : 0), | (false ? GLX_CONTEXT_DEBUG_BIT_ARB : 0), | ||||
| GHOST_OPENGL_GLX_RESET_NOTIFICATION_STRATEGY); | GHOST_OPENGL_GLX_RESET_NOTIFICATION_STRATEGY); | ||||
| #endif | |||||
| if (context->initializeDrawingContext()) | if (context->initializeDrawingContext()) | ||||
| return context; | return context; | ||||
| else | else | ||||
| delete context; | delete context; | ||||
| } | } | ||||
| #if defined(WITH_GL_EGL) | |||||
| context = new GHOST_ContextEGL(false, | |||||
| EGLNativeWindowType(nullptr), | |||||
| EGLNativeDisplayType(m_display), | |||||
| profile_mask, | |||||
| 3, | |||||
| 3, | |||||
| GHOST_OPENGL_EGL_CONTEXT_FLAGS | | |||||
| (false ? EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR : 0), | |||||
| GHOST_OPENGL_EGL_RESET_NOTIFICATION_STRATEGY, | |||||
| EGL_OPENGL_API); | |||||
| #else | |||||
| context = new GHOST_ContextGLX(false, | context = new GHOST_ContextGLX(false, | ||||
| (Window)NULL, | (Window)NULL, | ||||
| m_display, | m_display, | ||||
| (GLXFBConfig)NULL, | (GLXFBConfig)NULL, | ||||
| profile_mask, | profile_mask, | ||||
| 3, | 3, | ||||
| 3, | 3, | ||||
| GHOST_OPENGL_GLX_CONTEXT_FLAGS | | GHOST_OPENGL_GLX_CONTEXT_FLAGS | | ||||
| (false ? GLX_CONTEXT_DEBUG_BIT_ARB : 0), | (false ? GLX_CONTEXT_DEBUG_BIT_ARB : 0), | ||||
| GHOST_OPENGL_GLX_RESET_NOTIFICATION_STRATEGY); | GHOST_OPENGL_GLX_RESET_NOTIFICATION_STRATEGY); | ||||
| #endif | |||||
| if (context->initializeDrawingContext()) | if (context->initializeDrawingContext()) | ||||
| return context; | return context; | ||||
| else | else | ||||
| delete context; | delete context; | ||||
| return NULL; | return NULL; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 2,128 Lines • Show Last 20 Lines | |||||