wined3d: Add support for ARB_geometry_shader4.

Henri Verbeet hverbeet at codeweavers.com
Thu Mar 5 05:30:43 CST 2009


---
 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 )\
-- 
1.6.0.6



--------------080301000906070500080407--



More information about the wine-patches mailing list