summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/video/win32_v.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp
index 19e186ae2..1dc1db8ce 100644
--- a/src/video/win32_v.cpp
+++ b/src/video/win32_v.cpp
@@ -1360,14 +1360,22 @@ const char *VideoDriver_Win32OpenGL::AllocateContext()
/* Create OpenGL device context. Try to get an 3.2+ context if possible. */
if (_wglCreateContextAttribsARB != nullptr) {
+ /* Try for OpenGL 4.5 first. */
int attribs[] = {
- WGL_CONTEXT_MAJOR_VERSION_ARB, 3,
- WGL_CONTEXT_MINOR_VERSION_ARB, 2,
+ WGL_CONTEXT_MAJOR_VERSION_ARB, 4,
+ WGL_CONTEXT_MINOR_VERSION_ARB, 5,
WGL_CONTEXT_FLAGS_ARB, _debug_driver_level >= 8 ? WGL_CONTEXT_DEBUG_BIT_ARB : 0,
_hasWGLARBCreateContextProfile ? WGL_CONTEXT_PROFILE_MASK_ARB : 0, WGL_CONTEXT_CORE_PROFILE_BIT_ARB, // Terminate list if WGL_ARB_create_context_profile isn't supported.
0
};
rc = _wglCreateContextAttribsARB(this->dc, nullptr, attribs);
+
+ if (rc == nullptr) {
+ /* Try again for a 3.2 context. */
+ attribs[1] = 3;
+ attribs[3] = 2;
+ rc = _wglCreateContextAttribsARB(this->dc, nullptr, attribs);
+ }
}
if (rc == nullptr) {