[PATCH 5/5] wined3d: Prefer the core glActiveTexture function.
Matteo Bruni
mbruni at codeweavers.com
Mon Jan 5 10:17:55 CST 2015
---
dlls/wined3d/arb_program_shader.c | 2 +-
dlls/wined3d/context.c | 8 ++++----
dlls/wined3d/directx.c | 9 +++++++++
dlls/wined3d/gl_compat.c | 5 +++--
dlls/wined3d/wined3d_gl.h | 5 ++++-
5 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index bc66c4a..a7babda 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -7294,7 +7294,7 @@ static void upload_palette(const struct wined3d_texture *texture, struct wined3d
if (!priv->palette_texture)
gl_info->gl_ops.gl.p_glGenTextures(1, &priv->palette_texture);
- GL_EXTCALL(glActiveTextureARB(GL_TEXTURE1));
+ GL_EXTCALL(glActiveTexture(GL_TEXTURE1));
gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_1D, priv->palette_texture);
gl_info->gl_ops.gl.p_glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 4da8c7d..023bcbf 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -1328,8 +1328,8 @@ static void bind_dummy_textures(const struct wined3d_device *device, const struc
for (i = 0; i < count; ++i)
{
- GL_EXTCALL(glActiveTextureARB(GL_TEXTURE0_ARB + i));
- checkGLcall("glActiveTextureARB");
+ GL_EXTCALL(glActiveTexture(GL_TEXTURE0_ARB + i));
+ checkGLcall("glActiveTexture");
gl_info->gl_ops.gl.p_glBindTexture(GL_TEXTURE_2D, device->dummy_texture_2d[i]);
checkGLcall("glBindTexture");
@@ -2115,8 +2115,8 @@ void context_set_draw_buffer(struct wined3d_context *context, GLenum buffer)
/* Context activation is done by the caller. */
void context_active_texture(struct wined3d_context *context, const struct wined3d_gl_info *gl_info, unsigned int unit)
{
- GL_EXTCALL(glActiveTextureARB(GL_TEXTURE0 + unit));
- checkGLcall("glActiveTextureARB");
+ GL_EXTCALL(glActiveTexture(GL_TEXTURE0 + unit));
+ checkGLcall("glActiveTexture");
context->active_texture = unit;
}
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 794496b..8e1af13 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -3018,6 +3018,15 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter)
}
}
+#define MAP_GL_FUNCTION(core_func, ext_func) \
+ { \
+ if (!gl_info->gl_ops.ext.p_##core_func) \
+ gl_info->gl_ops.ext.p_##core_func = gl_info->gl_ops.ext.p_##ext_func; \
+ }
+
+ MAP_GL_FUNCTION(glActiveTexture, glActiveTextureARB);
+#undef MAP_GL_FUNCTION
+
gl_vendor = wined3d_guess_gl_vendor(gl_info, gl_vendor_str, gl_renderer_str);
card_vendor = wined3d_guess_card_vendor(gl_vendor_str, gl_renderer_str);
TRACE("Found GL_VENDOR (%s)->(0x%04x/0x%04x).\n", debugstr_a(gl_vendor_str), gl_vendor, card_vendor);
diff --git a/dlls/wined3d/gl_compat.c b/dlls/wined3d/gl_compat.c
index 4dd9062..a50d5c4 100644
--- a/dlls/wined3d/gl_compat.c
+++ b/dlls/wined3d/gl_compat.c
@@ -112,7 +112,8 @@ static void WINE_GLAPI wine_glMultiTexCoord4svARB(GLenum target, const GLshort *
context_get_current()->gl_info->gl_ops.gl.p_glTexCoord4sv(v);
}
-static void WINE_GLAPI wine_glActiveTextureARB(GLenum texture) {
+static void WINE_GLAPI wine_glActiveTexture(GLenum texture)
+{
if(texture != GL_TEXTURE0) {
ERR("Texture unit > 0 used, but GL_ARB_multitexture is not supported\n");
return;
@@ -351,7 +352,7 @@ void add_gl_compat_wrappers(struct wined3d_gl_info *gl_info)
if (!gl_info->supported[ARB_MULTITEXTURE])
{
TRACE("Applying GL_ARB_multitexture emulation hooks\n");
- gl_info->gl_ops.ext.p_glActiveTextureARB = wine_glActiveTextureARB;
+ gl_info->gl_ops.ext.p_glActiveTexture = wine_glActiveTexture;
gl_info->gl_ops.ext.p_glClientActiveTextureARB = wine_glClientActiveTextureARB;
gl_info->gl_ops.ext.p_glMultiTexCoord1fARB = wine_glMultiTexCoord1fARB;
gl_info->gl_ops.ext.p_glMultiTexCoord1fvARB = wine_glMultiTexCoord1fvARB;
diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h
index b02905e..7bf271d 100644
--- a/dlls/wined3d/wined3d_gl.h
+++ b/dlls/wined3d/wined3d_gl.h
@@ -600,6 +600,9 @@ enum wined3d_gl_extension
USE_GL_FUNC(wglGetPixelFormatAttribfvARB) \
USE_GL_FUNC(wglGetPixelFormatAttribivARB) \
USE_GL_FUNC(wglSetPixelFormatWINE) \
- USE_GL_FUNC(wglSwapIntervalEXT)
+ USE_GL_FUNC(wglSwapIntervalEXT) \
+ \
+ /* Newer core functions */ \
+ USE_GL_FUNC(glActiveTexture) \
#endif /* __WINE_WINED3D_GL */
--
2.0.5
More information about the wine-patches
mailing list