From ccafea6eee8aab9b636ffa0a48534cfb98c8fa5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Sun, 22 Sep 2013 00:25:59 +0000 Subject: [PATCH] [MESA/OPENGL32] - Disable un-used mesa features (ATI/NV programs) for a leaner build - Print a fixme instead of asserting in software version of wglGetProcAddress svn path=/trunk/; revision=60300 --- reactos/dll/opengl/mesa/src/mesa/main/CMakeLists.txt | 4 ++-- reactos/dll/opengl/mesa/src/mesa/main/arbprogram.c | 4 ++++ reactos/dll/opengl/mesa/src/mesa/main/dlist.c | 8 +++++--- reactos/dll/opengl/mesa/src/mesa/main/mfeatures.h | 6 +++--- reactos/dll/opengl/mesa/src/mesa/program/CMakeLists.txt | 4 ++-- reactos/dll/opengl/opengl32/swimpl.c | 6 ++++-- 6 files changed, 20 insertions(+), 12 deletions(-) diff --git a/reactos/dll/opengl/mesa/src/mesa/main/CMakeLists.txt b/reactos/dll/opengl/mesa/src/mesa/main/CMakeLists.txt index bbe7874c944..0d00a668079 100644 --- a/reactos/dll/opengl/mesa/src/mesa/main/CMakeLists.txt +++ b/reactos/dll/opengl/mesa/src/mesa/main/CMakeLists.txt @@ -8,7 +8,7 @@ list(APPEND SOURCE api_validate.c accum.c arbprogram.c - atifragshader.c + # atifragshader.c attrib.c arrayobj.c blend.c @@ -54,7 +54,7 @@ list(APPEND SOURCE mipmap.c mm.c multisample.c - nvprogram.c + # nvprogram.c pack.c pbo.c pixel.c diff --git a/reactos/dll/opengl/mesa/src/mesa/main/arbprogram.c b/reactos/dll/opengl/mesa/src/mesa/main/arbprogram.c index b83369d9e04..957d25f1823 100644 --- a/reactos/dll/opengl/mesa/src/mesa/main/arbprogram.c +++ b/reactos/dll/opengl/mesa/src/mesa/main/arbprogram.c @@ -370,6 +370,7 @@ _mesa_ProgramStringARB(GLenum target, GLenum format, GLsizei len, base = & prog->Base; } +#if FEATURE_NV_vertex_program else if ((target == GL_VERTEX_PROGRAM_ARB || target == GL_VERTEX_STATE_PROGRAM_NV) && ctx->Extensions.NV_vertex_program) { @@ -378,6 +379,7 @@ _mesa_ProgramStringARB(GLenum target, GLenum format, GLsizei len, base = & prog->Base; } +#endif else if (target == GL_FRAGMENT_PROGRAM_ARB && ctx->Extensions.ARB_fragment_program) { struct gl_fragment_program *prog = ctx->FragmentProgram.Current; @@ -385,6 +387,7 @@ _mesa_ProgramStringARB(GLenum target, GLenum format, GLsizei len, base = & prog->Base; } +#if FEATURE_NV_fragment_program else if (target == GL_FRAGMENT_PROGRAM_NV && ctx->Extensions.NV_fragment_program) { struct gl_fragment_program *prog = ctx->FragmentProgram.Current; @@ -392,6 +395,7 @@ _mesa_ProgramStringARB(GLenum target, GLenum format, GLsizei len, base = & prog->Base; } +#endif else { _mesa_error(ctx, GL_INVALID_ENUM, "glProgramStringARB(target)"); return; diff --git a/reactos/dll/opengl/mesa/src/mesa/main/dlist.c b/reactos/dll/opengl/mesa/src/mesa/main/dlist.c index 3db7bebae81..c74e7dae4ff 100644 --- a/reactos/dll/opengl/mesa/src/mesa/main/dlist.c +++ b/reactos/dll/opengl/mesa/src/mesa/main/dlist.c @@ -5027,7 +5027,7 @@ save_TrackMatrixNV(GLenum target, GLuint address, /* * GL_NV_fragment_program */ -#if FEATURE_NV_fragment_program +#if FEATURE_NV_fragment_program || FEATURE_ARB_fragment_program static void GLAPIENTRY save_ProgramLocalParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) @@ -5148,6 +5148,7 @@ save_ProgramLocalParameter4dvARB(GLenum target, GLuint index, } } +#if FEATURE_NV_fragment_program static void GLAPIENTRY save_ProgramNamedParameter4fNV(GLuint id, GLsizei len, const GLubyte * name, GLfloat x, GLfloat y, GLfloat z, GLfloat w) @@ -5178,7 +5179,6 @@ save_ProgramNamedParameter4fNV(GLuint id, GLsizei len, const GLubyte * name, } } - static void GLAPIENTRY save_ProgramNamedParameter4fvNV(GLuint id, GLsizei len, const GLubyte * name, const float v[]) @@ -5204,7 +5204,7 @@ save_ProgramNamedParameter4dvNV(GLuint id, GLsizei len, const GLubyte * name, (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); } - +#endif #endif /* FEATURE_NV_fragment_program */ @@ -10218,7 +10218,9 @@ _mesa_create_save_table(void) SET_GetVertexAttribdvARB(table, _mesa_GetVertexAttribdvARB); SET_GetVertexAttribfvARB(table, _mesa_GetVertexAttribfvARB); SET_GetVertexAttribivARB(table, _mesa_GetVertexAttribivARB); +#if FEATURE_NV_vertex_program SET_GetVertexAttribPointervNV(table, _mesa_GetVertexAttribPointervNV); +#endif SET_ProgramEnvParameter4dARB(table, save_ProgramEnvParameter4dARB); SET_ProgramEnvParameter4dvARB(table, save_ProgramEnvParameter4dvARB); SET_ProgramEnvParameter4fARB(table, save_ProgramEnvParameter4fARB); diff --git a/reactos/dll/opengl/mesa/src/mesa/main/mfeatures.h b/reactos/dll/opengl/mesa/src/mesa/main/mfeatures.h index b67f046ca6c..940151abbe7 100644 --- a/reactos/dll/opengl/mesa/src/mesa/main/mfeatures.h +++ b/reactos/dll/opengl/mesa/src/mesa/main/mfeatures.h @@ -132,10 +132,10 @@ #define FEATURE_EXT_transform_feedback FEATURE_GL #define FEATURE_APPLE_object_purgeable FEATURE_GL -#define FEATURE_ATI_fragment_shader FEATURE_GL +#define FEATURE_ATI_fragment_shader 0 #define FEATURE_NV_fence FEATURE_GL -#define FEATURE_NV_fragment_program FEATURE_GL -#define FEATURE_NV_vertex_program FEATURE_GL +#define FEATURE_NV_fragment_program 0 +#define FEATURE_NV_vertex_program 0 #define FEATURE_OES_EGL_image 1 #define FEATURE_OES_draw_texture FEATURE_ES1 diff --git a/reactos/dll/opengl/mesa/src/mesa/program/CMakeLists.txt b/reactos/dll/opengl/mesa/src/mesa/program/CMakeLists.txt index 363bc53890e..6d9334dfe40 100644 --- a/reactos/dll/opengl/mesa/src/mesa/program/CMakeLists.txt +++ b/reactos/dll/opengl/mesa/src/mesa/program/CMakeLists.txt @@ -5,8 +5,8 @@ list(APPEND SOURCE arbprogparse.c hash_table.c ir_to_mesa.cpp - nvfragparse.c - nvvertparse.c + # nvfragparse.c + # nvvertparse.c program.c program_parse_extra.c prog_cache.c diff --git a/reactos/dll/opengl/opengl32/swimpl.c b/reactos/dll/opengl/opengl32/swimpl.c index c95fea07fed..e1aa509cc0b 100644 --- a/reactos/dll/opengl/opengl32/swimpl.c +++ b/reactos/dll/opengl/opengl32/swimpl.c @@ -103,7 +103,9 @@ sw_get_string( struct gl_context *ctx, GLenum name ) (void) ctx; if(name == GL_RENDERER) return (const GLubyte *) "ReactOS Software Implementation"; - + /* Don't claim to support the fancy extensions that mesa supports, they will be slow anyway */ + if(name == GL_EXTENSIONS) + return (const GLubyte *)""; return NULL; } @@ -593,7 +595,7 @@ BOOL sw_DeleteContext(DHGLRC dhglrc) PROC sw_GetProcAddress(LPCSTR name) { /* We don't support any extensions */ - assert(FALSE); + FIXME("Asking for proc address %s, returning NULL.\n", name); return NULL; }