Module: wine Branch: master Commit: 3f9e0d9320e2b19e9c0c22ec9bfb4b086fedbc01 URL: http://source.winehq.org/git/wine.git/?a=commit;h=3f9e0d9320e2b19e9c0c22ec9b...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Thu Mar 5 12:30:43 2009 +0100
wined3d: Add support for ARB_geometry_shader4.
---
dlls/wined3d/directx.c | 1 + dlls/wined3d/wined3d_gl.h | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index 66eec6b..45fd633 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -64,6 +64,7 @@ static const struct { {"GL_ARB_draw_buffers", ARB_DRAW_BUFFERS, 0 }, {"GL_ARB_fragment_program", ARB_FRAGMENT_PROGRAM, 0 }, {"GL_ARB_fragment_shader", ARB_FRAGMENT_SHADER, 0 }, + {"GL_ARB_geometry_shader4", ARB_GEOMETRY_SHADER4, 0 }, {"GL_ARB_half_float_pixel", ARB_HALF_FLOAT_PIXEL, 0 }, {"GL_ARB_imaging", ARB_IMAGING, 0 }, {"GL_ARB_multisample", ARB_MULTISAMPLE, 0 }, /* needs GLX_ARB_MULTISAMPLE as well */ diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h index dd3946e..d0529df 100644 --- a/dlls/wined3d/wined3d_gl.h +++ b/dlls/wined3d/wined3d_gl.h @@ -1550,6 +1550,37 @@ typedef void (WINE_GLAPI *PGLFNCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); #endif typedef void (WINE_GLAPI *PGLFNDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs);
+/* GL_ARB_geometry_shader4 */ +#ifndef GL_ARB_geometry_shader4 +#define GL_GEOMETRY_SHADER_ARB 0x8dd9 +#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8dda +#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8ddb +#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8ddc +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8c29 +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8ddd +#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8dde +#define GL_MAX_VARYING_COMPONENTS_ARB 0x8b4b +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8ddf +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8de0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8de1 +#define GL_LINES_ADJACENCY_ARB 0x000a +#define GL_LINE_STRIP_ADJACENCY_ARB 0x000b +#define GL_TRIANGLES_ADJACENCY_ARB 0x000c +#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000d +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8da8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8da9 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8da7 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8cd4 +#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 +#endif +typedef void (WINE_GLAPI *PGLFNPROGRAMPARAMETERIARBPROC)(GLuint program, GLenum pname, GLint value); +typedef void (WINE_GLAPI *PGLFNFRAMEBUFFERTEXTUREARBPROC)(GLenum target, GLenum attachment, + GLuint texture, GLint level); +typedef void (WINE_GLAPI *PGLFNFRAMEBUFFERTEXTURELAYERARBPROC)(GLenum target, GLenum attachment, + GLuint texture, GLint level, GLint layer); +typedef void (WINE_GLAPI *PGLFNFRAMEBUFFERTEXTUREFACEARBPROC)(GLenum target, GLenum attachment, + GLuint texture, GLint level, GLenum face); + /* GL_ARB_imaging */ #ifndef GL_ARB_imaging #define GL_ARB_imaging 1 @@ -3335,6 +3366,7 @@ typedef enum _GL_SupportedExt { ARB_DRAW_BUFFERS, ARB_FRAGMENT_PROGRAM, ARB_FRAGMENT_SHADER, + ARB_GEOMETRY_SHADER4, ARB_IMAGING, ARB_MULTISAMPLE, ARB_MULTITEXTURE, @@ -3444,6 +3476,11 @@ typedef enum _GL_SupportedExt { USE_GL_FUNC(PGLFNCLAMPCOLORARBPROC, glClampColorARB, ARB_COLOR_BUFFER_FLOAT, NULL )\ /* GL_ARB_draw_buffers */ \ USE_GL_FUNC(PGLFNDRAWBUFFERSARBPROC, glDrawBuffersARB, ARB_DRAW_BUFFERS, NULL )\ + /* GL_ARB_geometry_shader4 */ \ + USE_GL_FUNC(PGLFNPROGRAMPARAMETERIARBPROC, glProgramParameteriARB, ARB_GEOMETRY_SHADER4, NULL ) \ + USE_GL_FUNC(PGLFNFRAMEBUFFERTEXTUREARBPROC, glFramebufferTextureARB, ARB_GEOMETRY_SHADER4, NULL ) \ + USE_GL_FUNC(PGLFNFRAMEBUFFERTEXTURELAYERARBPROC, glFramebufferTextureLayerARB, ARB_GEOMETRY_SHADER4, NULL ) \ + USE_GL_FUNC(PGLFNFRAMEBUFFERTEXTUREFACEARBPROC, glFramebufferTextureFaceARB, ARB_GEOMETRY_SHADER4, NULL ) \ /* GL_ARB_imaging, GL_EXT_blend_minmax */ \ USE_GL_FUNC(PGLFNBLENDCOLORPROC, glBlendColorEXT, EXT_BLEND_COLOR, NULL )\ USE_GL_FUNC(PGLFNBLENDEQUATIONPROC, glBlendEquationEXT, EXT_BLEND_MINMAX, NULL )\