Module: wine Branch: master Commit: c698171fa37ea16a7ac511b1cd89f1d3dc9fd3fc URL: http://source.winehq.org/git/wine.git/?a=commit;h=c698171fa37ea16a7ac511b1cd...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Mon Jan 25 19:51:29 2010 +0100
wined3d: Add support for ARB_sync.
---
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) \