[PATCH 2/5] opengl32: Introduce wrappers for glGetIntegerv and glGetStringi.
Matteo Bruni
mbruni at codeweavers.com
Thu Jan 29 11:45:01 CST 2015
It should be a NOP change, the wrappers do nothing extra (yet).
---
dlls/opengl32/make_opengl | 1 +
dlls/opengl32/opengl_norm.c | 9 ---------
dlls/opengl32/wgl.c | 38 +++++++++++++++++++++++++++++---------
3 files changed, 30 insertions(+), 18 deletions(-)
diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl
index 9ca5ebd..82c9919 100755
--- a/dlls/opengl32/make_opengl
+++ b/dlls/opengl32/make_opengl
@@ -237,6 +237,7 @@ sub GenerateThunk($$$$)
return "" if $name eq "glDebugEntry";
return "" if $name eq "glGetString";
+ return "" if $name eq "glGetIntegerv";
return "" if $func_ref->[2] && $func_ref->[2]->[0] =~ /WGL_/;
# If for opengl_norm.c, generate a nice heading otherwise Patrik won't be happy :-)
diff --git a/dlls/opengl32/opengl_norm.c b/dlls/opengl32/opengl_norm.c
index 52fb00b..34a4892 100644
--- a/dlls/opengl32/opengl_norm.c
+++ b/dlls/opengl32/opengl_norm.c
@@ -948,15 +948,6 @@ void WINAPI glGetFloatv( GLenum pname, GLfloat* data ) {
}
/***********************************************************************
- * glGetIntegerv (OPENGL32.@)
- */
-void WINAPI glGetIntegerv( GLenum pname, GLint* data ) {
- const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
- TRACE("(%d, %p)\n", pname, data );
- funcs->gl.p_glGetIntegerv( pname, data );
-}
-
-/***********************************************************************
* glGetLightfv (OPENGL32.@)
*/
void WINAPI glGetLightfv( GLenum light, GLenum pname, GLfloat* params ) {
diff --git a/dlls/opengl32/wgl.c b/dlls/opengl32/wgl.c
index cb91699..c339840 100644
--- a/dlls/opengl32/wgl.c
+++ b/dlls/opengl32/wgl.c
@@ -687,27 +687,42 @@ int WINAPI wglGetLayerPaletteEntries(HDC hdc,
return 0;
}
+void WINAPI glGetIntegerv(GLenum pname, GLint *data)
+{
+ const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+
+ TRACE("(%d, %p)\n", pname, data);
+ funcs->gl.p_glGetIntegerv(pname, data);
+}
+
+static const GLubyte * WINAPI glGetStringi(GLenum name, GLuint index)
+{
+ const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+
+ TRACE("(%d, %d)\n", name, index);
+ if (!funcs->ext.p_glGetStringi)
+ {
+ void **func_ptr = (void **)&funcs->ext.p_glGetStringi;
+
+ *func_ptr = funcs->wgl.p_wglGetProcAddress("glGetStringi");
+ }
+
+ return funcs->ext.p_glGetStringi(name, index);
+}
+
/* check if the extension is present in the list */
static BOOL has_extension( const char *list, const char *ext, size_t len )
{
if (!list)
{
- const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
const char *gl_ext;
unsigned int i;
GLint extensions_count;
- if (!funcs->ext.p_glGetStringi)
- {
- void **func_ptr = (void **)&funcs->ext.p_glGetStringi;
-
- *func_ptr = funcs->wgl.p_wglGetProcAddress("glGetStringi");
- }
-
glGetIntegerv(GL_NUM_EXTENSIONS, &extensions_count);
for (i = 0; i < extensions_count; ++i)
{
- gl_ext = (const char *)funcs->ext.p_glGetStringi(GL_EXTENSIONS, i);
+ gl_ext = (const char *)glGetStringi(GL_EXTENSIONS, i);
if (!strncmp(gl_ext, ext, len) && !gl_ext[len])
return TRUE;
}
@@ -834,6 +849,11 @@ PROC WINAPI wglGetProcAddress( LPCSTR name )
*func_ptr = driver_func;
}
+ if (!strcmp(name, "glGetIntegerv"))
+ return (void *)glGetIntegerv;
+ else if (!strcmp(name, "glGetStringi"))
+ return (void *)glGetStringi;
+
TRACE("returning %s -> %p\n", name, ext_ret->func);
return ext_ret->func;
}
--
2.0.5
More information about the wine-patches
mailing list