Stefan Dösinger : wined3d: Add GL_ARB_texture_rectangles to our opengl extensions.
Alexandre Julliard
julliard at winehq.org
Thu Nov 29 10:31:22 CST 2007
Module: wine
Branch: master
Commit: 0cfa7f99e6189087c00f597c7b00c8e5571fbbb0
URL: http://source.winehq.org/git/wine.git/?a=commit;h=0cfa7f99e6189087c00f597c7b00c8e5571fbbb0
Author: Stefan Dösinger <stefan at codeweavers.com>
Date: Mon Nov 26 23:19:03 2007 +0100
wined3d: Add GL_ARB_texture_rectangles to our opengl extensions.
---
dlls/wined3d/directx.c | 8 ++++++++
include/wine/wined3d_gl.h | 12 ++++++++++++
2 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 3bc5712..9700ae3 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -75,6 +75,7 @@ static const struct {
{"GL_ARB_texture_float", ARB_TEXTURE_FLOAT, 0 },
{"GL_ARB_texture_mirrored_repeat", ARB_TEXTURE_MIRRORED_REPEAT, 0 },
{"GL_ARB_texture_non_power_of_two", ARB_TEXTURE_NON_POWER_OF_TWO, 0 },
+ {"GL_ARB_texture_rectangle", ARB_TEXTURE_RECTANGLE, 0 },
{"GL_ARB_vertex_blend", ARB_VERTEX_BLEND, 0 },
{"GL_ARB_vertex_buffer_object", ARB_VERTEX_BUFFER_OBJECT, 0 },
{"GL_ARB_vertex_program", ARB_VERTEX_PROGRAM, 0 },
@@ -870,6 +871,12 @@ BOOL IWineD3DImpl_FillGLCaps(WineD3D_GL_Info *gl_info) {
} else if (gl_info->supported[NV_FRAGMENT_PROGRAM]) {
gl_info->ps_nv_version = PS_VERSION_20;
}
+ if (gl_info->supported[ARB_TEXTURE_NON_POWER_OF_TWO]) {
+ /* If we have full NP2 texture support, disable GL_ARB_texture_rectangle because we will never use it.
+ * This saves a few redundant glDisable calls
+ */
+ gl_info->supported[ARB_TEXTURE_RECTANGLE] = FALSE;
+ }
}
checkGLcall("extension detection\n");
@@ -2837,6 +2844,7 @@ static void fixup_extensions(WineD3D_GL_Info *gl_info) {
gl_info->gl_card == CARD_ATI_RADEON_7200 || gl_info->gl_card == CARD_ATI_RAGE_128PRO) {
TRACE("GL_ARB_texture_non_power_of_two advertised on R500 or earlier card, removing\n");
gl_info->supported[ARB_TEXTURE_NON_POWER_OF_TWO] = FALSE;
+ gl_info->supported[ARB_TEXTURE_RECTANGLE] = TRUE;
}
}
}
diff --git a/include/wine/wined3d_gl.h b/include/wine/wined3d_gl.h
index 2213779..9c26950 100644
--- a/include/wine/wined3d_gl.h
+++ b/include/wine/wined3d_gl.h
@@ -2866,6 +2866,17 @@ typedef void (WINE_GLAPI * PGLFNFINISHRENDERAPPLEPROC) (void);
#define UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
#endif
+/* GL_ARB_texture_rectangle */
+#ifndef GL_ARB_texture_rectangle
+#define GL_ARB_texture_rectangle
+#define GL_TEXTURE_RECTANGLE_ARB 0x84F5
+#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6
+#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8
+#define GL_SAMPLER_2D_RECT_ARB 0x8B63
+#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64
+#endif
+
/* GL_VERSION_2_0 */
#ifndef GL_VERSION_2_0
#define GL_VERSION_2_0 1
@@ -3167,6 +3178,7 @@ typedef enum _GL_SupportedExt {
ARB_TEXTURE_BORDER_CLAMP,
ARB_TEXTURE_MIRRORED_REPEAT,
ARB_TEXTURE_NON_POWER_OF_TWO,
+ ARB_TEXTURE_RECTANGLE,
ARB_VERTEX_PROGRAM,
ARB_VERTEX_BLEND,
ARB_VERTEX_BUFFER_OBJECT,
More information about the wine-cvs
mailing list