From: Zebediah Figura zfigura@codeweavers.com
This is useful in tables like format_texture_info.
The specific idea here is that we want to move color_fixup to the format_texture_info table. In order to do this, we need two separate entries for INTZ: one for core contexts, which uses an XXXX fixup, and one for legacy contexts, which uses no fixup (because we can use GL_DEPTH_TEXTURE_MODE_ARB) but still requires EXT_packed_depth_stencil. This works because core contexts imply GL 3.0 which in turn implies EXT_packed_depth_stencil, but it cannot work with just WINED3D_GL_LEGACY_CONTEXT, so we need to invert the meaning and create WINED3D_GL_CORE_CONTEXT. --- dlls/wined3d/adapter_gl.c | 6 ++++++ dlls/wined3d/wined3d_gl.h | 1 + 2 files changed, 7 insertions(+)
diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c index de4729a56fc..1594e23f0ab 100644 --- a/dlls/wined3d/adapter_gl.c +++ b/dlls/wined3d/adapter_gl.c @@ -3447,10 +3447,16 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter_gl *adapter_gl, gl_info->gl_ops.gl.p_glGetIntegerv(GL_CONTEXT_PROFILE_MASK, &context_profile); checkGLcall("Querying context profile"); } + if (context_profile & GL_CONTEXT_CORE_PROFILE_BIT) + { TRACE("Got a core profile context.\n"); + gl_info->supported[WINED3D_GL_CORE_CONTEXT] = TRUE; + } else + { gl_info->supported[WINED3D_GL_LEGACY_CONTEXT] = TRUE; + }
TRACE("GL extensions reported:\n"); if (gl_info->supported[WINED3D_GL_LEGACY_CONTEXT]) diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h index 67b8f4a7b2b..7a20d45d75d 100644 --- a/dlls/wined3d/wined3d_gl.h +++ b/dlls/wined3d/wined3d_gl.h @@ -229,6 +229,7 @@ enum wined3d_gl_extension WGL_WINE_QUERY_RENDERER, /* Internally used */ WINED3D_GL_BLEND_EQUATION, + WINED3D_GL_CORE_CONTEXT, WINED3D_GL_LEGACY_CONTEXT, WINED3D_GL_NORMALIZED_TEXRECT, WINED3D_GL_PRIMITIVE_QUERY,