wined3d: Add GL_ARB_map_buffer_range.

This commit is contained in:
Stefan Dösinger 2010-01-28 20:50:55 +01:00 committed by Alexandre Julliard
parent 8fc1fc49fd
commit f6bb86e196
2 changed files with 26 additions and 0 deletions

View File

@ -63,6 +63,7 @@ static const struct {
{"GL_ARB_half_float_pixel", ARB_HALF_FLOAT_PIXEL, 0 }, {"GL_ARB_half_float_pixel", ARB_HALF_FLOAT_PIXEL, 0 },
{"GL_ARB_half_float_vertex", ARB_HALF_FLOAT_VERTEX, 0 }, {"GL_ARB_half_float_vertex", ARB_HALF_FLOAT_VERTEX, 0 },
{"GL_ARB_imaging", ARB_IMAGING, 0 }, {"GL_ARB_imaging", ARB_IMAGING, 0 },
{"GL_ARB_map_buffer_range", ARB_MAP_BUFFER_RANGE, 0 },
{"GL_ARB_multisample", ARB_MULTISAMPLE, 0 }, /* needs GLX_ARB_MULTISAMPLE as well */ {"GL_ARB_multisample", ARB_MULTISAMPLE, 0 }, /* needs GLX_ARB_MULTISAMPLE as well */
{"GL_ARB_multitexture", ARB_MULTITEXTURE, 0 }, {"GL_ARB_multitexture", ARB_MULTITEXTURE, 0 },
{"GL_ARB_occlusion_query", ARB_OCCLUSION_QUERY, 0 }, {"GL_ARB_occlusion_query", ARB_OCCLUSION_QUERY, 0 },
@ -1837,6 +1838,12 @@ static BOOL IWineD3DImpl_FillGLCaps(struct wined3d_driver_info *driver_info, str
gl_info->supported[ARB_HALF_FLOAT_PIXEL] = TRUE; gl_info->supported[ARB_HALF_FLOAT_PIXEL] = TRUE;
} }
} }
if (gl_info->supported[ARB_MAP_BUFFER_RANGE])
{
/* GL_ARB_map_buffer_range and GL_APPLE_flush_buffer_range provide the same
* functionality. Prefer the ARB extension */
gl_info->supported[APPLE_FLUSH_BUFFER_RANGE] = FALSE;
}
if (gl_info->supported[ARB_TEXTURE_CUBE_MAP]) if (gl_info->supported[ARB_TEXTURE_CUBE_MAP])
{ {
TRACE_(d3d_caps)(" IMPLIED: NVIDIA (NV) Texture Gen Reflection support.\n"); TRACE_(d3d_caps)(" IMPLIED: NVIDIA (NV) Texture Gen Reflection support.\n");

View File

@ -1743,6 +1743,7 @@ typedef enum wined3d_gl_extension
ARB_HALF_FLOAT_PIXEL, ARB_HALF_FLOAT_PIXEL,
ARB_HALF_FLOAT_VERTEX, ARB_HALF_FLOAT_VERTEX,
ARB_IMAGING, ARB_IMAGING,
ARB_MAP_BUFFER_RANGE,
ARB_MULTISAMPLE, ARB_MULTISAMPLE,
ARB_MULTITEXTURE, ARB_MULTITEXTURE,
ARB_OCCLUSION_QUERY, ARB_OCCLUSION_QUERY,
@ -2225,6 +2226,19 @@ typedef void (WINE_GLAPI *PGLFNFRAMEBUFFERTEXTUREFACEARBPROC)(GLenum target, GLe
typedef void (WINE_GLAPI *PGLFNBLENDCOLORPROC)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); typedef void (WINE_GLAPI *PGLFNBLENDCOLORPROC)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
typedef void (WINE_GLAPI *PGLFNBLENDEQUATIONPROC)(GLenum mode); typedef void (WINE_GLAPI *PGLFNBLENDEQUATIONPROC)(GLenum mode);
/* GL_ARB_map_buffer_range */
#ifndef GL_ARB_map_buffer_range
#define GL_ARB_map_buffer_range 1
#define GL_MAP_READ_BIT 0x0001
#define GL_MAP_WRITE_BIT 0x0002
#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004
#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020
#endif
typedef GLvoid *(WINE_GLAPI *PGLFNMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
typedef void (WINE_GLAPI *PGLFNFLUSHMAPPEDBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length);
/* GL_ARB_multisample */ /* GL_ARB_multisample */
#ifndef GL_ARB_multisample #ifndef GL_ARB_multisample
#define GL_ARB_multisample 1 #define GL_ARB_multisample 1
@ -3934,6 +3948,11 @@ typedef BOOL (WINAPI *WINED3D_PFNWGLSETPIXELFORMATWINE)(HDC hdc, int iPixelForma
glBlendColorEXT, EXT_BLEND_COLOR, NULL) \ glBlendColorEXT, EXT_BLEND_COLOR, NULL) \
USE_GL_FUNC(PGLFNBLENDEQUATIONPROC, \ USE_GL_FUNC(PGLFNBLENDEQUATIONPROC, \
glBlendEquationEXT, EXT_BLEND_MINMAX, NULL) \ glBlendEquationEXT, EXT_BLEND_MINMAX, NULL) \
/* GL_ARB_map_buffer_range */ \
USE_GL_FUNC(PGLFNMAPBUFFERRANGEPROC, \
glMapBufferRange, ARB_MAP_BUFFER_RANGE, NULL) \
USE_GL_FUNC(PGLFNFLUSHMAPPEDBUFFERRANGEPROC, \
glFlushMappedBufferRange, ARB_MAP_BUFFER_RANGE, NULL) \
/* GL_ARB_multisample */ \ /* GL_ARB_multisample */ \
USE_GL_FUNC(WINED3D_PFNGLSAMPLECOVERAGEARBPROC, \ USE_GL_FUNC(WINED3D_PFNGLSAMPLECOVERAGEARBPROC, \
glSampleCoverageARB, ARB_MULTISAMPLE, NULL) \ glSampleCoverageARB, ARB_MULTISAMPLE, NULL) \