[gl] Explicitly request compatibility profile

And core profile for glsl
This commit is contained in:
Bill Currie 2022-03-24 20:35:29 +09:00
parent 7ca3b56620
commit 00362e9f4e
5 changed files with 14 additions and 6 deletions

View file

@ -8,7 +8,7 @@ typedef struct gl_ctx_s {
GL_context context; GL_context context;
void (*load_gl) (void); void (*load_gl) (void);
void (*choose_visual) (struct gl_ctx_s *ctx); void (*choose_visual) (struct gl_ctx_s *ctx);
void (*create_context) (struct gl_ctx_s *ctx); void (*create_context) (struct gl_ctx_s *ctx, int core);
void (*init_gl) (void); void (*init_gl) (void);
void *(*get_proc_address) (const char *name, qboolean crit); void *(*get_proc_address) (const char *name, qboolean crit);
void (*end_rendering) (void); void (*end_rendering) (void);

View file

@ -147,7 +147,7 @@ gl_vid_render_choose_visual (void *data)
static void static void
gl_vid_render_create_context (void *data) gl_vid_render_create_context (void *data)
{ {
gl_ctx->create_context (gl_ctx); gl_ctx->create_context (gl_ctx, 0);
} }
static vid_model_funcs_t model_funcs = { static vid_model_funcs_t model_funcs = {

View file

@ -55,7 +55,7 @@ glsl_vid_render_choose_visual (void *data)
static void static void
glsl_vid_render_create_context (void *data) glsl_vid_render_create_context (void *data)
{ {
glsl_ctx->create_context (glsl_ctx); glsl_ctx->create_context (glsl_ctx, 1);
} }
static vid_model_funcs_t model_funcs = { static vid_model_funcs_t model_funcs = {

View file

@ -117,7 +117,7 @@ wgl_set_pixel_format (void)
} }
static void static void
wgl_create_context (gl_ctx_t *ctx) wgl_create_context (gl_ctx_t *ctx, int core)
{ {
DWORD lasterror; DWORD lasterror;

View file

@ -66,6 +66,12 @@
#define GLX_STENCIL_SIZE 13 // number of stencil bits #define GLX_STENCIL_SIZE 13 // number of stencil bits
#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 #define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 #define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
#define GLX_CONTEXT_FLAGS_ARB 0x2094
#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126
#define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001
#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002
#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
#define GLX_X_RENDERABLE 0x8012 #define GLX_X_RENDERABLE 0x8012
#define GLX_DRAWABLE_TYPE 0x8010 #define GLX_DRAWABLE_TYPE 0x8010
@ -187,12 +193,14 @@ glx_choose_visual (gl_ctx_t *ctx)
} }
static void static void
glx_create_context (gl_ctx_t *ctx) glx_create_context (gl_ctx_t *ctx, int core)
{ {
int attribs[] = { int attribs[] = {
GLX_CONTEXT_MAJOR_VERSION_ARB, 3, GLX_CONTEXT_MAJOR_VERSION_ARB, 3,
GLX_CONTEXT_MINOR_VERSION_ARB, 0, GLX_CONTEXT_MINOR_VERSION_ARB, 0,
//GLX_CONTEXT_FLAGS_ARB, GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB GLX_CONTEXT_PROFILE_MASK_ARB,
core ? GLX_CONTEXT_CORE_PROFILE_BIT_ARB
: GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB,
None None
}; };
XSync (x_disp, 0); XSync (x_disp, 0);