Explicitly set OpenGL profile to core (X11, Windows).
Enable GLES2 on Windows.
This commit is contained in:
parent
2efd7add4a
commit
ad67911f1a
|
@ -38,6 +38,8 @@
|
||||||
#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
|
#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
|
||||||
#define WGL_CONTEXT_FLAGS_ARB 0x2094
|
#define WGL_CONTEXT_FLAGS_ARB 0x2094
|
||||||
#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
|
#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
|
||||||
|
#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
|
||||||
|
#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
|
||||||
|
|
||||||
typedef HGLRC(APIENTRY *PFNWGLCREATECONTEXTATTRIBSARBPROC)(HDC, HGLRC, const int *);
|
typedef HGLRC(APIENTRY *PFNWGLCREATECONTEXTATTRIBSARBPROC)(HDC, HGLRC, const int *);
|
||||||
|
|
||||||
|
@ -153,6 +155,7 @@ Error ContextGL_Win::initialize() {
|
||||||
WGL_CONTEXT_MAJOR_VERSION_ARB, 3, //we want a 3.3 context
|
WGL_CONTEXT_MAJOR_VERSION_ARB, 3, //we want a 3.3 context
|
||||||
WGL_CONTEXT_MINOR_VERSION_ARB, 3,
|
WGL_CONTEXT_MINOR_VERSION_ARB, 3,
|
||||||
//and it shall be forward compatible so that we can only use up to date functionality
|
//and it shall be forward compatible so that we can only use up to date functionality
|
||||||
|
WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_CORE_PROFILE_BIT_ARB,
|
||||||
WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB /*| _WGL_CONTEXT_DEBUG_BIT_ARB*/,
|
WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB /*| _WGL_CONTEXT_DEBUG_BIT_ARB*/,
|
||||||
0
|
0
|
||||||
}; //zero indicates the end of the array
|
}; //zero indicates the end of the array
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
|
|
||||||
#include "os_windows.h"
|
#include "os_windows.h"
|
||||||
|
|
||||||
|
#include "drivers/gles2/rasterizer_gles2.h"
|
||||||
#include "drivers/gles3/rasterizer_gles3.h"
|
#include "drivers/gles3/rasterizer_gles3.h"
|
||||||
#include "drivers/windows/dir_access_windows.h"
|
#include "drivers/windows/dir_access_windows.h"
|
||||||
#include "drivers/windows/file_access_windows.h"
|
#include "drivers/windows/file_access_windows.h"
|
||||||
|
@ -1069,12 +1070,19 @@ Error OS_Windows::initialize(const VideoMode &p_desired, int p_video_driver, int
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(OPENGL_ENABLED)
|
#if defined(OPENGL_ENABLED)
|
||||||
|
if (p_video_driver == VIDEO_DRIVER_GLES2) {
|
||||||
|
gl_context = memnew(ContextGL_Win(hWnd, false));
|
||||||
|
gl_context->initialize();
|
||||||
|
|
||||||
|
RasterizerGLES2::register_config();
|
||||||
|
RasterizerGLES2::make_current();
|
||||||
|
} else {
|
||||||
gl_context = memnew(ContextGL_Win(hWnd, true));
|
gl_context = memnew(ContextGL_Win(hWnd, true));
|
||||||
gl_context->initialize();
|
gl_context->initialize();
|
||||||
|
|
||||||
RasterizerGLES3::register_config();
|
RasterizerGLES3::register_config();
|
||||||
|
|
||||||
RasterizerGLES3::make_current();
|
RasterizerGLES3::make_current();
|
||||||
|
}
|
||||||
|
|
||||||
gl_context->set_use_vsync(video_mode.use_vsync);
|
gl_context->set_use_vsync(video_mode.use_vsync);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -170,6 +170,7 @@ Error ContextGL_X11::initialize() {
|
||||||
static int context_attribs[] = {
|
static int context_attribs[] = {
|
||||||
GLX_CONTEXT_MAJOR_VERSION_ARB, 3,
|
GLX_CONTEXT_MAJOR_VERSION_ARB, 3,
|
||||||
GLX_CONTEXT_MINOR_VERSION_ARB, 3,
|
GLX_CONTEXT_MINOR_VERSION_ARB, 3,
|
||||||
|
GLX_CONTEXT_PROFILE_MASK_ARB, GLX_CONTEXT_CORE_PROFILE_BIT_ARB,
|
||||||
GLX_CONTEXT_FLAGS_ARB, GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB /*|GLX_CONTEXT_DEBUG_BIT_ARB*/,
|
GLX_CONTEXT_FLAGS_ARB, GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB /*|GLX_CONTEXT_DEBUG_BIT_ARB*/,
|
||||||
None
|
None
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue