diff options
-rw-r--r-- | src/mapi/glapi/gen/ARB_texture_multisample.xml | 69 | ||||
-rw-r--r-- | src/mapi/glapi/gen/gl_API.xml | 3 | ||||
-rw-r--r-- | src/mesa/main/multisample.c | 15 | ||||
-rw-r--r-- | src/mesa/main/multisample.h | 6 | ||||
-rw-r--r-- | src/mesa/main/tests/dispatch_sanity.cpp | 8 | ||||
-rw-r--r-- | src/mesa/main/teximage.c | 21 | ||||
-rw-r--r-- | src/mesa/main/teximage.h | 11 |
7 files changed, 128 insertions, 5 deletions
diff --git a/src/mapi/glapi/gen/ARB_texture_multisample.xml b/src/mapi/glapi/gen/ARB_texture_multisample.xml new file mode 100644 index 00000000000..f0dd4f5f79b --- /dev/null +++ b/src/mapi/glapi/gen/ARB_texture_multisample.xml @@ -0,0 +1,69 @@ +<?xml version="1.0"?> +<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd"> + +<!-- Note: no GLX protocol info yet. --> + +<OpenGLAPI> + +<category name="GL_ARB_texture_multisample" number="67"> + + <enum name="SAMPLE_POSITION" value="0x8E50"/> + <enum name="SAMPLE_MASK" value="0x8E51"/> + <enum name="SAMPLE_MASK_VALUE" value="0x8E52"/> + + <enum name="TEXTURE_2D_MULTISAMPLE" value="0x9100"/> + <enum name="PROXY_TEXTURE_2D_MULTISAMPLE" value="0x9101"/> + <enum name="TEXTURE_2D_MULTISAMPLE_ARRAY" value="0x9102"/> + <enum name="PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY" value="0x9103"/> + + <enum name="MAX_SAMPLE_MASK_WORDS" value="0x8E59"/> + <enum name="MAX_COLOR_TEXTURE_SAMPLES" value="0x910E"/> + <enum name="MAX_DEPTH_TEXTURE_SAMPLES" value="0x910F"/> + <enum name="MAX_INTEGER_SAMPLES" value="0x9110"/> + + <enum name="TEXTURE_BINDING_2D_MULTISAMPLE" value="0x9104"/> + <enum name="TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY" value="0x9105"/> + + <enum name="TEXTURE_SAMPLES" value="0x9106"/> + <enum name="TEXTURE_FIXED_SAMPLE_LOCATIONS" value="0x9107"/> + + <enum name="SAMPLER_2D_MULTISAMPLE" value="0x9108"/> + <enum name="INT_SAMPLER_2D_MULTISAMPLE" value="0x9109"/> + <enum name="UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE" value="0x910A"/> + <enum name="SAMPLER_2D_MULTISAMPLE_ARRAY" value="0x910B"/> + <enum name="INT_SAMPLER_2D_MULTISAMPLE_ARRAY" value="0x910C"/> + <enum name="UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY" value="0x910D"/> + + <function name="TexImage2DMultisample" offset="assign"> + <param name="target" type="GLenum"/> + <param name="samples" type="GLsizei"/> + <param name="internalformat" type="GLint"/> + <param name="width" type="GLsizei"/> + <param name="height" type="GLsizei"/> + <param name="fixedsamplelocations" type="GLboolean"/> + </function> + + <function name="TexImage3DMultisample" offset="assign"> + <param name="target" type="GLenum"/> + <param name="samples" type="GLsizei"/> + <param name="internalformat" type="GLint"/> + <param name="width" type="GLsizei"/> + <param name="height" type="GLsizei"/> + <param name="depth" type="GLsizei"/> + <param name="fixedsamplelocations" type="GLboolean"/> + </function> + + <function name="GetMultisamplefv" offset="assign"> + <param name="pname" type="GLenum"/> + <param name="index" type="GLuint"/> + <param name="val" type="GLfloat *"/> + </function> + + <function name="SampleMaski" offset="assign"> + <param name="index" type="GLuint"/> + <param name="mask" type="GLbitfield"/> + </function> + +</category> + +</OpenGLAPI> diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml index 4cbd72462b4..75957dc7dbd 100644 --- a/src/mapi/glapi/gen/gl_API.xml +++ b/src/mapi/glapi/gen/gl_API.xml @@ -8179,7 +8179,8 @@ <xi:include href="ARB_sync.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> -<!-- 67. GL_ARB_texture_multisample --> +<xi:include href="ARB_texture_multisample.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> + <!-- 68. GL_ARB_vertex_array_bgra --> <xi:include href="ARB_draw_buffers_blend.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> diff --git a/src/mesa/main/multisample.c b/src/mesa/main/multisample.c index f792ad01e74..0687cd042d7 100644 --- a/src/mesa/main/multisample.c +++ b/src/mesa/main/multisample.c @@ -60,3 +60,18 @@ _mesa_init_multisample(struct gl_context *ctx) ctx->Multisample.SampleCoverageValue = 1.0; ctx->Multisample.SampleCoverageInvert = GL_FALSE; } + + +void GLAPIENTRY +_mesa_GetMultisamplefv(GLenum pname, GLuint index, GLfloat * val) +{ + assert(!"Not implemented"); + // TODO: make this work +} + +void GLAPIENTRY +_mesa_SampleMaski(GLuint index, GLbitfield mask) +{ + assert(!"Not implemented"); + // TODO: make this work +} diff --git a/src/mesa/main/multisample.h b/src/mesa/main/multisample.h index 30726c34cf1..9e6b8e0d3f8 100644 --- a/src/mesa/main/multisample.h +++ b/src/mesa/main/multisample.h @@ -38,4 +38,10 @@ extern void _mesa_init_multisample(struct gl_context *ctx); +extern void GLAPIENTRY +_mesa_GetMultisamplefv(GLenum pname, GLuint index, GLfloat* val); + +extern void GLAPIENTRY +_mesa_SampleMaski(GLuint index, GLbitfield mask); + #endif diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp index bf6b297e139..3431dedc105 100644 --- a/src/mesa/main/tests/dispatch_sanity.cpp +++ b/src/mesa/main/tests/dispatch_sanity.cpp @@ -602,10 +602,10 @@ const struct function gl_core_functions_possible[] = { { "glWaitSync", 43, -1 }, { "glGetInteger64v", 43, -1 }, { "glGetSynciv", 43, -1 }, -// { "glTexImage2DMultisample", 43, -1 }, // XXX: Add to xml -// { "glTexImage3DMultisample", 43, -1 }, // XXX: Add to xml -// { "glGetMultisamplefv", 43, -1 }, // XXX: Add to xml -// { "glSampleMaski", 43, -1 }, // XXX: Add to xml + { "glTexImage2DMultisample", 43, -1 }, + { "glTexImage3DMultisample", 43, -1 }, + { "glGetMultisamplefv", 43, -1 }, + { "glSampleMaski", 43, -1 }, { "glBlendEquationiARB", 43, -1 }, { "glBlendEquationSeparateiARB", 43, -1 }, { "glBlendFunciARB", 43, -1 }, diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index f0de0fb4935..d40d58eecc2 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -4102,3 +4102,24 @@ _mesa_TexBufferRange(GLenum target, GLenum internalFormat, GLuint buffer, texbufferrange(ctx, target, internalFormat, bufObj, offset, size); } + + +/** GL_ARB_texture_multisample */ +void GLAPIENTRY +_mesa_TexImage2DMultisample(GLenum target, GLsizei samples, + GLint internalformat, GLsizei width, + GLsizei height, GLboolean fixedsamplelocations) +{ + assert(!"Not implemented"); + /* allocate a single 2d multisample texture */ +} + +void GLAPIENTRY +_mesa_TexImage3DMultisample(GLenum target, GLsizei samples, + GLint internalformat, GLsizei width, + GLsizei height, GLsizei depth, + GLboolean fixedsamplelocations) +{ + assert(!"Not implemented"); + /* allocate an array of 2d multisample textures */ +} diff --git a/src/mesa/main/teximage.h b/src/mesa/main/teximage.h index 7124cac5214..744c47a8af6 100644 --- a/src/mesa/main/teximage.h +++ b/src/mesa/main/teximage.h @@ -294,6 +294,17 @@ _mesa_TexBufferRange(GLenum target, GLenum internalFormat, GLuint buffer, GLintptr offset, GLsizeiptr size); +extern void GLAPIENTRY +_mesa_TexImage2DMultisample(GLenum target, GLsizei samples, + GLint internalformat, GLsizei width, + GLsizei height, GLboolean fixedsamplelocations); + +extern void GLAPIENTRY +_mesa_TexImage3DMultisample(GLenum target, GLsizei samples, + GLint internalformat, GLsizei width, + GLsizei height, GLsizei depth, + GLboolean fixedsamplelocations); + /*@}*/ #ifdef __cplusplus |