diff options
author | Mike Erwin <significant.bit@gmail.com> | 2016-08-03 21:46:29 +0300 |
---|---|---|
committer | Mike Erwin <significant.bit@gmail.com> | 2016-08-03 21:46:29 +0300 |
commit | eccf5a6f8186ec283e3934da61073e9e6ca28cb6 (patch) | |
tree | d79f5b160a17cfbc00e970ef688ca4fd9965cfb9 /intern | |
parent | 251349c3c2269fff915d1bb85911211563493071 (diff) |
OpenGL: Blender 2.8 on Windows requires GL 3.2
This greatly simplifies the options for context creation. No options for
legacy GL or EGL or ES2. Select CORE or COMPATIBILITY profile at build
time.
OpenGL 3.2 core profile will be our final target on all platforms. Until
all our code is ready we can use 3.2 compatibility profile or "legacy"
GL 2.1 on platforms that don't support compatibility profile.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/ghost/intern/GHOST_ContextWGL.cpp | 6 | ||||
-rw-r--r-- | intern/ghost/intern/GHOST_WindowWin32.cpp | 88 |
2 files changed, 12 insertions, 82 deletions
diff --git a/intern/ghost/intern/GHOST_ContextWGL.cpp b/intern/ghost/intern/GHOST_ContextWGL.cpp index abce3ea6588..12ffb374d02 100644 --- a/intern/ghost/intern/GHOST_ContextWGL.cpp +++ b/intern/ghost/intern/GHOST_ContextWGL.cpp @@ -961,7 +961,7 @@ GHOST_TSuccess GHOST_ContextWGL::initializeDrawingContext() strcmp(renderer, "GDI Generic") == 0) && version[0] == '1' && version[2] == '1') { MessageBox(m_hWnd, "Your system does not use 3D hardware acceleration.\n" - "Blender requires a graphics driver with OpenGL 2.1 support.\n\n" + "Blender requires a graphics driver with OpenGL 3.2 support.\n\n" "This may be caused by:\n" "* A missing or faulty graphics driver installation.\n" " Blender needs a graphics card driver to work correctly.\n" @@ -972,8 +972,8 @@ GHOST_TSuccess GHOST_ContextWGL::initializeDrawingContext() MB_OK | MB_ICONERROR); exit(0); } - else if (version[0] < '2' || (version[0] == '2' && version[2] < '1')) { - MessageBox(m_hWnd, "Blender requires a graphics driver with OpenGL 2.1 support.\n\n" + else if (version[0] < '3' || (version[0] == '3' && version[2] < '2')) { + MessageBox(m_hWnd, "Blender requires a graphics driver with OpenGL 3.2 support.\n\n" "The program will now close.", "Blender - Unsupported Graphics Driver!", MB_OK | MB_ICONERROR); diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp index 6a27d7aadf9..1ea6eab06cd 100644 --- a/intern/ghost/intern/GHOST_WindowWin32.cpp +++ b/intern/ghost/intern/GHOST_WindowWin32.cpp @@ -610,97 +610,27 @@ GHOST_TSuccess GHOST_WindowWin32::invalidate() GHOST_Context *GHOST_WindowWin32::newDrawingContext(GHOST_TDrawingContextType type) { if (type == GHOST_kDrawingContextTypeOpenGL) { -#if !defined(WITH_GL_EGL) + const int profile_mask = #if defined(WITH_GL_PROFILE_CORE) - GHOST_Context *context = new GHOST_ContextWGL( - m_wantStereoVisual, - m_wantAlphaBackground, - m_wantNumOfAASamples, - m_hWnd, - m_hDC, - WGL_CONTEXT_CORE_PROFILE_BIT_ARB, - 3, 2, - GHOST_OPENGL_WGL_CONTEXT_FLAGS, - GHOST_OPENGL_WGL_RESET_NOTIFICATION_STRATEGY); -#elif defined(WITH_GL_PROFILE_ES20) - GHOST_Context *context = new GHOST_ContextWGL( - m_wantStereoVisual, - m_wantAlphaBackground, - m_wantNumOfAASamples, - m_hWnd, - m_hDC, - WGL_CONTEXT_ES2_PROFILE_BIT_EXT, - 2, 0, - GHOST_OPENGL_WGL_CONTEXT_FLAGS, - GHOST_OPENGL_WGL_RESET_NOTIFICATION_STRATEGY); + WGL_CONTEXT_CORE_PROFILE_BIT_ARB; #elif defined(WITH_GL_PROFILE_COMPAT) + WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB; +#else +# error // must specify either core or compat at build time +#endif + GHOST_Context *context = new GHOST_ContextWGL( m_wantStereoVisual, m_wantAlphaBackground, m_wantNumOfAASamples, m_hWnd, m_hDC, -#if 1 - 0, // profile bit - 2, 1, // GL version requested -#else - // switch to this for Blender 2.8 development - WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB, - 3, 2, -#endif + profile_mask, + 3, 2, // GL version requested GHOST_OPENGL_WGL_CONTEXT_FLAGS, GHOST_OPENGL_WGL_RESET_NOTIFICATION_STRATEGY); -#else -# error -#endif -#else - -#if defined(WITH_GL_PROFILE_CORE) - GHOST_Context *context = new GHOST_ContextEGL( - m_wantStereoVisual, - m_wantNumOfAASamples, - m_hWnd, - m_hDC, - EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT, - 3, 2, - GHOST_OPENGL_EGL_CONTEXT_FLAGS, - GHOST_OPENGL_EGL_RESET_NOTIFICATION_STRATEGY, - EGL_OPENGL_API); -#elif defined(WITH_GL_PROFILE_ES20) - GHOST_Context *context = new GHOST_ContextEGL( - m_wantStereoVisual, - m_wantNumOfAASamples, - m_hWnd, - m_hDC, - 0, // profile bit - 2, 0, - GHOST_OPENGL_EGL_CONTEXT_FLAGS, - GHOST_OPENGL_EGL_RESET_NOTIFICATION_STRATEGY, - EGL_OPENGL_ES_API); -#elif defined(WITH_GL_PROFILE_COMPAT) - GHOST_Context *context = new GHOST_ContextEGL( - m_wantStereoVisual, - m_wantNumOfAASamples, - m_hWnd, - m_hDC, -#if 1 - 0, // profile bit - 2, 1, // GL version requested -#else - // switch to this for Blender 2.8 development - EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT, - 3, 2, -#endif - GHOST_OPENGL_EGL_CONTEXT_FLAGS, - GHOST_OPENGL_EGL_RESET_NOTIFICATION_STRATEGY, - EGL_OPENGL_API); -#else -# error -#endif - -#endif if (context->initializeDrawingContext()) return context; else |