[PATCH 2/5] wined3d: Add support for ARB_sync.
Henri Verbeet
hverbeet at codeweavers.com
Mon Jan 25 12:51:29 CST 2010
---
dlls/wined3d/directx.c | 1 +
dlls/wined3d/wined3d_gl.h | 47 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 48 insertions(+), 0 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 4cd47b3..688b499 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -70,6 +70,7 @@ static const struct {
{"GL_ARB_provoking_vertex", ARB_PROVOKING_VERTEX, 0 },
{"GL_ARB_shader_objects", ARB_SHADER_OBJECTS, 0 },
{"GL_ARB_shader_texture_lod", ARB_SHADER_TEXTURE_LOD, 0 },
+ {"GL_ARB_sync", ARB_SYNC, 0 },
{"GL_ARB_texture_border_clamp", ARB_TEXTURE_BORDER_CLAMP, 0 },
{"GL_ARB_texture_compression", ARB_TEXTURE_COMPRESSION, 0 },
{"GL_ARB_texture_cube_map", ARB_TEXTURE_CUBE_MAP, 0 },
diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h
index a03e566..aeac47b 100644
--- a/dlls/wined3d/wined3d_gl.h
+++ b/dlls/wined3d/wined3d_gl.h
@@ -75,6 +75,9 @@ typedef double GLclampd;
typedef void GLvoid;
typedef ptrdiff_t GLintptr;
typedef ptrdiff_t GLsizeiptr;
+typedef INT64 GLint64;
+typedef UINT64 GLuint64;
+typedef struct __GLsync *GLsync;
/* Booleans */
#define GL_FALSE 0x0
@@ -1749,6 +1752,7 @@ typedef enum wined3d_gl_extension
ARB_PROVOKING_VERTEX,
ARB_SHADER_OBJECTS,
ARB_SHADER_TEXTURE_LOD,
+ ARB_SYNC,
ARB_TEXTURE_BORDER_CLAMP,
ARB_TEXTURE_COMPRESSION,
ARB_TEXTURE_CUBE_MAP,
@@ -2389,6 +2393,34 @@ typedef unsigned int GLhandleARB;
#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8b8c
#endif
+/* GL_ARB_sync */
+#ifndef GL_ARB_sync
+#define GL_ARB_sync 1
+#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
+#define GL_OBJECT_TYPE 0x9112
+#define GL_SYNC_CONDITION 0x9113
+#define GL_SYNC_STATUS 0x9114
+#define GL_SYNC_FLAGS 0x9115
+#define GL_SYNC_FENCE 0x9116
+#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
+#define GL_UNSIGNALED 0x9118
+#define GL_SIGNALED 0x9119
+#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
+#define GL_TIMEOUT_IGNORED 0xffffffffffffffffULL
+#define GL_ALREADY_SIGNALED 0x911a
+#define GL_TIMEOUT_EXPIRED 0x911b
+#define GL_CONDITION_SATISFIED 0x911c
+#define GL_WAIT_FAILED 0x911d
+#endif
+typedef GLsync (WINE_GLAPI *PGLFNFENCESYNCPROC)(GLenum condition, GLbitfield flags);
+typedef GLboolean (WINE_GLAPI *PGLFNISSYNCPROC)(GLsync sync);
+typedef GLvoid (WINE_GLAPI *PGLFNDELETESYNCPROC)(GLsync sync);
+typedef GLenum (WINE_GLAPI *PGLFNCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
+typedef GLvoid (WINE_GLAPI *PGLFNWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
+typedef GLvoid (WINE_GLAPI *PGLFNGETINTEGER64VPROC)(GLenum pname, GLint64 *params);
+typedef GLvoid (WINE_GLAPI *PGLFNGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei bufsize,
+ GLsizei *length, GLint *values);
+
/* GL_ARB_texture_border_clamp */
#ifndef GL_ARB_texture_border_clamp
#define GL_ARB_texture_border_clamp 1
@@ -4032,6 +4064,21 @@ typedef BOOL (WINAPI *WINED3D_PFNWGLSETPIXELFORMATWINE)(HDC hdc, int iPixelForma
glBindAttribLocationARB, ARB_SHADER_OBJECTS, NULL) \
USE_GL_FUNC(WINED3D_PFNGLGETATTRIBLOCATIONARBPROC, \
glGetAttribLocationARB, ARB_SHADER_OBJECTS, NULL) \
+ /* GL_ARB_sync */ \
+ USE_GL_FUNC(PGLFNFENCESYNCPROC, \
+ glFenceSync, ARB_SYNC, NULL) \
+ USE_GL_FUNC(PGLFNISSYNCPROC, \
+ glIsSync, ARB_SYNC, NULL) \
+ USE_GL_FUNC(PGLFNDELETESYNCPROC, \
+ glDeleteSync, ARB_SYNC, NULL) \
+ USE_GL_FUNC(PGLFNCLIENTWAITSYNCPROC, \
+ glClientWaitSync, ARB_SYNC, NULL) \
+ USE_GL_FUNC(PGLFNWAITSYNCPROC, \
+ glWaitSync, ARB_SYNC, NULL) \
+ USE_GL_FUNC(PGLFNGETINTEGER64VPROC, \
+ glGetInteger64v, ARB_SYNC, NULL) \
+ USE_GL_FUNC(PGLFNGETSYNCIVPROC, \
+ glGetSynciv, ARB_SYNC, NULL) \
/* GL_ARB_texture_compression */ \
USE_GL_FUNC(PGLFNCOMPRESSEDTEXIMAGE2DPROC, \
glCompressedTexImage2DARB, ARB_TEXTURE_COMPRESSION, NULL) \
--
1.6.4.4
More information about the wine-patches
mailing list