<param name="img" type="GLvoid *" />
</function>
+ <function name="CompressedMultiTexImage1DEXT">
+ <param name="texunit" type="GLenum" />
+ <param name="target" type="GLenum" />
+ <param name="level" type="GLint" />
+ <param name="internalFormat" type="GLenum" />
+ <param name="width" type="GLsizei" />
+ <param name="border" type="GLsizei" />
+ <param name="imageSize" type="GLsizei" />
+ <param name="data" type="const GLvoid *" />
+ </function>
+
+ <function name="CompressedMultiTexImage2DEXT">
+ <param name="texunit" type="GLenum" />
+ <param name="target" type="GLenum" />
+ <param name="level" type="GLint" />
+ <param name="internalFormat" type="GLenum" />
+ <param name="width" type="GLsizei" />
+ <param name="height" type="GLsizei" />
+ <param name="border" type="GLsizei" />
+ <param name="imageSize" type="GLsizei" />
+ <param name="data" type="const GLvoid *" />
+ </function>
+
+ <function name="CompressedMultiTexImage3DEXT">
+ <param name="texunit" type="GLenum" />
+ <param name="target" type="GLenum" />
+ <param name="level" type="GLint" />
+ <param name="internalFormat" type="GLenum" />
+ <param name="width" type="GLsizei" />
+ <param name="height" type="GLsizei" />
+ <param name="depth" type="GLsizei" />
+ <param name="border" type="GLsizei" />
+ <param name="imageSize" type="GLsizei" />
+ <param name="data" type="const GLvoid *" />
+ </function>
+
+ <function name="CompressedMultiTexSubImage1DEXT">
+ <param name="texunit" type="GLenum" />
+ <param name="target" type="GLenum" />
+ <param name="level" type="GLint" />
+ <param name="xoffset" type="GLint" />
+ <param name="width" type="GLsizei" />
+ <param name="format" type="GLenum" />
+ <param name="imageSize" type="GLsizei" />
+ <param name="data" type="const GLvoid *" />
+ </function>
+
+ <function name="CompressedMultiTexSubImage2DEXT">
+ <param name="texunit" type="GLenum" />
+ <param name="target" type="GLenum" />
+ <param name="level" type="GLint" />
+ <param name="xoffset" type="GLint" />
+ <param name="yoffset" type="GLint" />
+ <param name="width" type="GLsizei" />
+ <param name="height" type="GLsizei" />
+ <param name="format" type="GLenum" />
+ <param name="imageSize" type="GLsizei" />
+ <param name="data" type="const GLvoid *" />
+ </function>
+
+ <function name="CompressedMultiTexSubImage3DEXT">
+ <param name="texunit" type="GLenum" />
+ <param name="target" type="GLenum" />
+ <param name="level" type="GLint" />
+ <param name="xoffset" type="GLint" />
+ <param name="yoffset" type="GLint" />
+ <param name="zoffset" type="GLint" />
+ <param name="width" type="GLsizei" />
+ <param name="height" type="GLsizei" />
+ <param name="depth" type="GLsizei" />
+ <param name="format" type="GLenum" />
+ <param name="imageSize" type="GLsizei" />
+ <param name="data" type="const GLvoid *" />
+ </function>
+
+ <function name="GetCompressedMultiTexImageEXT">
+ <param name="texunit" type="GLenum" />
+ <param name="target" type="GLenum" />
+ <param name="level" type="GLint" />
+ <param name="img" type="GLvoid *" />
+ </function>
+
<!-- OpenGL 1.5 -->
<function name="NamedBufferDataEXT">
"CompressedTextureSubImage2DEXT": 1522,
"CompressedTextureSubImage3DEXT": 1523,
"GetCompressedTextureImageEXT": 1524,
+ "CompressedMultiTexImage1DEXT": 1525,
+ "CompressedMultiTexImage2DEXT": 1526,
+ "CompressedMultiTexImage3DEXT": 1527,
+ "CompressedMultiTexSubImage1DEXT": 1528,
+ "CompressedMultiTexSubImage2DEXT": 1529,
+ "CompressedMultiTexSubImage3DEXT": 1530,
+ "GetCompressedMultiTexImageEXT": 1531,
}
functions = [
{ "glCompressedTextureSubImage2DEXT", 13, -1 },
{ "glCompressedTextureSubImage3DEXT", 13, -1 },
{ "glGetCompressedTextureImageEXT", 13, -1 },
- //{ "glCompressedMultiTexImage1DEXT", 13, -1 },
- //{ "glCompressedMultiTexImage2DEXT", 13, -1 },
- //{ "glCompressedMultiTexImage3DEXT", 13, -1 },
- //{ "glCompressedMultiTexSubImage1DEXT", 13, -1 },
- //{ "glCompressedMultiTexSubImage2DEXT", 13, -1 },
- //{ "glCompressedMultiTexSubImage3DEXT", 13, -1 },
- //{ "glGetCompressedMultiTexImageEXT", 13, -1 },
+ { "glCompressedMultiTexImage1DEXT", 13, -1 },
+ { "glCompressedMultiTexImage2DEXT", 13, -1 },
+ { "glCompressedMultiTexImage3DEXT", 13, -1 },
+ { "glCompressedMultiTexSubImage1DEXT", 13, -1 },
+ { "glCompressedMultiTexSubImage2DEXT", 13, -1 },
+ { "glCompressedMultiTexSubImage3DEXT", 13, -1 },
+ { "glGetCompressedMultiTexImageEXT", 13, -1 },
{ "glMatrixLoadTransposefEXT", 13, -1 },
{ "glMatrixLoadTransposedEXT", 13, -1 },
{ "glMatrixMultTransposefEXT", 13, -1 },
texObj = _mesa_lookup_or_create_texture(ctx, target, texture,
false, true, caller);
+
+ get_texture_image_dims(texObj, texObj->Target, level,
+ &width, &height, &depth);
+
+ if (getcompressedteximage_error_check(ctx, texObj, texObj->Target, level,
+ 0, 0, 0, width, height, depth,
+ INT_MAX, pixels, caller)) {
+ return;
+ }
+
+ get_compressed_texture_image(ctx, texObj, texObj->Target, level,
+ 0, 0, 0, width, height, depth,
+ pixels, caller);
+}
+
+
+void GLAPIENTRY
+_mesa_GetCompressedMultiTexImageEXT(GLenum texunit, GLenum target, GLint level,
+ GLvoid *pixels)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ struct gl_texture_object* texObj;
+ GLsizei width, height, depth;
+ static const char *caller = "glGetCompressedMultiTexImageEXT";
+
+ texObj = _mesa_get_texobj_by_target_and_texunit(ctx, target,
+ texunit - GL_TEXTURE0,
+ false,
+ caller);
+
get_texture_image_dims(texObj, texObj->Target, level,
&width, &height, &depth);
_mesa_GetCompressedTextureImageEXT(GLuint texture, GLenum target, GLint level,
GLvoid *pixels);
+extern void GLAPIENTRY
+_mesa_GetCompressedMultiTexImageEXT(GLenum texunit, GLenum target, GLint level,
+ GLvoid *pixels);
+
extern void APIENTRY
_mesa_GetCompressedTextureSubImage(GLuint texture, GLint level,
GLint xoffset, GLint yoffset,
}
+void GLAPIENTRY
+_mesa_CompressedMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level,
+ GLenum internalFormat, GLsizei width,
+ GLint border, GLsizei imageSize,
+ const GLvoid *pixels)
+{
+ struct gl_texture_object* texObj;
+ GET_CURRENT_CONTEXT(ctx);
+
+ texObj = _mesa_get_texobj_by_target_and_texunit(ctx, target,
+ texunit - GL_TEXTURE0,
+ true,
+ "glCompressedMultiTexImage1DEXT");
+ if (!texObj)
+ return;
+ teximage(ctx, GL_TRUE, 1, texObj, target, level, internalFormat,
+ width, 1, 1, border, GL_NONE, GL_NONE, imageSize, pixels, false);
+}
+
+
void GLAPIENTRY
_mesa_CompressedTexImage2D(GLenum target, GLint level,
GLenum internalFormat, GLsizei width,
}
+void GLAPIENTRY
+_mesa_CompressedMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level,
+ GLenum internalFormat, GLsizei width,
+ GLsizei height, GLint border, GLsizei imageSize,
+ const GLvoid *pixels)
+{
+ struct gl_texture_object* texObj;
+ GET_CURRENT_CONTEXT(ctx);
+
+ texObj = _mesa_get_texobj_by_target_and_texunit(ctx, target,
+ texunit - GL_TEXTURE0,
+ true,
+ "glCompressedMultiTexImage2DEXT");
+ if (!texObj)
+ return;
+ teximage(ctx, GL_TRUE, 2, texObj, target, level, internalFormat,
+ width, height, 1, border, GL_NONE, GL_NONE, imageSize, pixels, false);
+}
+
+
void GLAPIENTRY
_mesa_CompressedTexImage3D(GLenum target, GLint level,
GLenum internalFormat, GLsizei width,
}
+void GLAPIENTRY
+_mesa_CompressedMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level,
+ GLenum internalFormat, GLsizei width,
+ GLsizei height, GLsizei depth, GLint border,
+ GLsizei imageSize, const GLvoid *pixels)
+{
+ struct gl_texture_object* texObj;
+ GET_CURRENT_CONTEXT(ctx);
+
+ texObj = _mesa_get_texobj_by_target_and_texunit(ctx, target,
+ texunit - GL_TEXTURE0,
+ true,
+ "glCompressedMultiTexImage3DEXT");
+ if (!texObj)
+ return;
+ teximage(ctx, GL_TRUE, 3, texObj, target, level, internalFormat,
+ width, height, depth, border, GL_NONE, GL_NONE, imageSize, pixels, false);
+}
+
void GLAPIENTRY
_mesa_CompressedTexImage1D_no_error(GLenum target, GLint level,
TEX_MODE_DSA_ERROR,
/* Use the specified texture name + target */
TEX_MODE_EXT_DSA_TEXTURE,
+ /* Use the specified texture unit + target */
+ TEX_MODE_EXT_DSA_TEXUNIT,
};
static void
-compressed_tex_sub_image(unsigned dim, GLenum target, GLuint texture,
+compressed_tex_sub_image(unsigned dim, GLenum target, GLuint textureOrIndex,
GLint level, GLint xoffset, GLint yoffset,
GLint zoffset, GLsizei width, GLsizei height,
GLsizei depth, GLenum format, GLsizei imageSize,
switch (mode) {
case TEX_MODE_DSA_ERROR:
assert(target == 0);
- texObj = _mesa_lookup_texture_err(ctx, texture, caller);
+ texObj = _mesa_lookup_texture_err(ctx, textureOrIndex, caller);
if (texObj)
target = texObj->Target;
break;
case TEX_MODE_DSA_NO_ERROR:
assert(target == 0);
- texObj = _mesa_lookup_texture(ctx, texture);
+ texObj = _mesa_lookup_texture(ctx, textureOrIndex);
if (texObj)
target = texObj->Target;
no_error = true;
break;
case TEX_MODE_EXT_DSA_TEXTURE:
- texObj = _mesa_lookup_or_create_texture(ctx, target, texture,
+ texObj = _mesa_lookup_or_create_texture(ctx, target, textureOrIndex,
false, true, caller);
break;
+ case TEX_MODE_EXT_DSA_TEXUNIT:
+ texObj = _mesa_get_texobj_by_target_and_texunit(ctx, target,
+ textureOrIndex,
+ false,
+ caller);
+ break;
case TEX_MODE_CURRENT_ERROR:
no_error = true;
case TEX_MODE_CURRENT_NO_ERROR:
default:
- assert(texture == 0);
+ assert(textureOrIndex == 0);
texObj = _mesa_get_current_tex_object(ctx, target);
break;
}
}
+void GLAPIENTRY
+_mesa_CompressedMultiTexSubImage1DEXT(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset,
+ GLsizei width, GLenum format,
+ GLsizei imageSize, const GLvoid *data)
+{
+ compressed_tex_sub_image(1, target, texunit - GL_TEXTURE0, level,
+ xoffset, 0, 0, width, 1, 1, format, imageSize,
+ data,
+ TEX_MODE_EXT_DSA_TEXUNIT,
+ "glCompressedMultiTexSubImage1DEXT");
+}
+
+
void GLAPIENTRY
_mesa_CompressedTexSubImage2D_no_error(GLenum target, GLint level,
GLint xoffset, GLint yoffset,
}
+void GLAPIENTRY
+_mesa_CompressedMultiTexSubImage2DEXT(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset, GLint yoffset,
+ GLsizei width, GLsizei height, GLenum format,
+ GLsizei imageSize, const GLvoid *data)
+{
+ compressed_tex_sub_image(2, target, texunit - GL_TEXTURE0, level,
+ xoffset, yoffset, 0, width, height, 1, format,
+ imageSize, data,
+ TEX_MODE_EXT_DSA_TEXUNIT,
+ "glCompressedMultiTexSubImage2DEXT");
+}
+
+
void GLAPIENTRY
_mesa_CompressedTextureSubImage2D_no_error(GLuint texture, GLint level,
GLint xoffset, GLint yoffset,
}
+void GLAPIENTRY
+_mesa_CompressedMultiTexSubImage3DEXT(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset, GLint yoffset,
+ GLint zoffset, GLsizei width, GLsizei height,
+ GLsizei depth, GLenum format,
+ GLsizei imageSize, const GLvoid *data)
+{
+ compressed_tex_sub_image(3, target, texunit - GL_TEXTURE0, level,
+ xoffset, yoffset, zoffset, width, height, depth,
+ format, imageSize, data,
+ TEX_MODE_EXT_DSA_TEXUNIT,
+ "glCompressedMultiTexSubImage3DEXT");
+}
+
+
mesa_format
_mesa_get_texbuffer_format(const struct gl_context *ctx, GLenum internalFormat)
{
GLint border, GLsizei imageSize,
const GLvoid *pixels);
+extern void GLAPIENTRY
+_mesa_CompressedMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level,
+ GLenum internalFormat, GLsizei width,
+ GLint border, GLsizei imageSize,
+ const GLvoid *pixels);
+
extern void GLAPIENTRY
_mesa_CompressedTexImage2D(GLenum target, GLint level,
GLenum internalformat, GLsizei width,
GLsizei height, GLint border, GLsizei imageSize,
const GLvoid *pixels);
+extern void GLAPIENTRY
+_mesa_CompressedMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level,
+ GLenum internalFormat, GLsizei width,
+ GLsizei height, GLint border, GLsizei imageSize,
+ const GLvoid *pixels);
+
extern void GLAPIENTRY
_mesa_CompressedTexImage3D(GLenum target, GLint level,
GLenum internalformat, GLsizei width,
GLsizei height, GLsizei depth, GLint border,
GLsizei imageSize, const GLvoid *pixels);
+extern void GLAPIENTRY
+_mesa_CompressedMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level,
+ GLenum internalFormat, GLsizei width,
+ GLsizei height, GLsizei depth, GLint border,
+ GLsizei imageSize, const GLvoid *pixels);
+
+
extern void GLAPIENTRY
_mesa_CompressedTexImage1D_no_error(GLenum target, GLint level,
GLenum internalformat, GLsizei width,
GLint xoffset, GLsizei width, GLenum format,
GLsizei imageSize, const GLvoid *data);
+extern void GLAPIENTRY
+_mesa_CompressedMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level,
+ GLint xoffset, GLsizei width, GLenum format,
+ GLsizei imageSize, const GLvoid *data);
+
+
void GLAPIENTRY
_mesa_CompressedTextureSubImage2DEXT(GLuint texture, GLenum target,
GLint level, GLint xoffset,
GLsizei height, GLenum format,
GLsizei imageSize, const GLvoid *data);
+extern void GLAPIENTRY
+_mesa_CompressedMultiTexSubImage2DEXT(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset,
+ GLint yoffset, GLsizei width,
+ GLsizei height, GLenum format,
+ GLsizei imageSize, const GLvoid *data);
+
extern void GLAPIENTRY
_mesa_CompressedTextureSubImage3DEXT(GLuint texture, GLenum target,
GLint level, GLint xoffset,
GLenum format, GLsizei imageSize,
const GLvoid *data);
+extern void GLAPIENTRY
+_mesa_CompressedMultiTexSubImage3DEXT(GLenum texunit, GLenum target,
+ GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLenum format, GLsizei imageSize,
+ const GLvoid *data);
+
extern void GLAPIENTRY
_mesa_CompressedTexSubImage2D_no_error(GLenum target, GLint level,
GLint xoffset, GLint yoffset,