GLint level, GLint xoffset, GLint yoffset,
GLint zoffset, GLsizei width, GLsizei height,
GLsizei depth, GLenum format, GLsizei imageSize,
- const GLvoid *data, bool dsa, bool no_error,
- const char *caller)
+ const GLvoid *data, bool dsa, bool ext_dsa,
+ bool no_error, const char *caller)
{
struct gl_texture_object *texObj = NULL;
struct gl_texture_image *texImage;
if (dsa) {
if (no_error) {
texObj = _mesa_lookup_texture(ctx, texture);
+ target = texObj->Target;
} else {
- texObj = _mesa_lookup_texture_err(ctx, texture, caller);
- if (!texObj)
- return;
- }
+ if (!ext_dsa) {
+ texObj = _mesa_lookup_texture_err(ctx, texture, caller);
+ if (!texObj)
+ return;
- target = texObj->Target;
+ target = texObj->Target;
+ } else {
+ texObj = lookup_texture_ext_dsa(ctx, target, texture, caller);
+ if (!texObj)
+ return;
+ }
+ }
}
if (!no_error &&
GLint level, GLint xoffset, GLint yoffset,
GLint zoffset, GLsizei width, GLsizei height,
GLsizei depth, GLenum format, GLsizei imageSize,
- const GLvoid *data, bool dsa,
+ const GLvoid *data, bool dsa, bool ext_dsa,
const char *caller)
{
compressed_tex_sub_image(dim, target, texture, level, xoffset, yoffset,
zoffset, width, height, depth, format, imageSize,
- data, dsa, false, caller);
+ data, dsa, ext_dsa, false, caller);
}
static void
GLint level, GLint xoffset, GLint yoffset,
GLint zoffset, GLsizei width, GLsizei height,
GLsizei depth, GLenum format, GLsizei imageSize,
- const GLvoid *data, bool dsa,
+ const GLvoid *data, bool dsa, bool ext_dsa,
const char *caller)
{
compressed_tex_sub_image(dim, target, texture, level, xoffset, yoffset,
zoffset, width, height, depth, format, imageSize,
- data, dsa, true, caller);
+ data, dsa, ext_dsa, true, caller);
}
void GLAPIENTRY
{
compressed_tex_sub_image_no_error(1, target, 0, level, xoffset, 0, 0, width,
1, 1, format, imageSize, data, false,
- "glCompressedTexSubImage1D");
+ false, "glCompressedTexSubImage1D");
}
GLsizei imageSize, const GLvoid *data)
{
compressed_tex_sub_image_error(1, target, 0, level, xoffset, 0, 0, width, 1,
- 1, format, imageSize, data, false,
+ 1, format, imageSize, data, false, false,
"glCompressedTexSubImage1D");
}
GLenum format, GLsizei imageSize,
const GLvoid *data)
{
- compressed_tex_sub_image_no_error(1, 0, texture, level, xoffset, 0, 0, width,
- 1, 1, format, imageSize, data, true,
+ compressed_tex_sub_image_no_error(1, 0, texture, level, xoffset, 0, 0,
+ width, 1, 1, format, imageSize, data,
+ true, false,
"glCompressedTextureSubImage1D");
}
GLsizei imageSize, const GLvoid *data)
{
compressed_tex_sub_image_error(1, 0, texture, level, xoffset, 0, 0, width,
- 1, 1, format, imageSize, data, true,
+ 1, 1, format, imageSize, data, true, false,
"glCompressedTextureSubImage1D");
}
+
void GLAPIENTRY
_mesa_CompressedTexSubImage2D_no_error(GLenum target, GLint level,
GLint xoffset, GLint yoffset,
{
compressed_tex_sub_image_no_error(2, target, 0, level, xoffset, yoffset, 0,
width, height, 1, format, imageSize, data,
- false, "glCompressedTexSubImage2D");
+ false, false,
+ "glCompressedTexSubImage2D");
}
{
compressed_tex_sub_image_error(2, target, 0, level, xoffset, yoffset, 0,
width, height, 1, format, imageSize, data,
- false, "glCompressedTexSubImage2D");
+ false, false,
+ "glCompressedTexSubImage2D");
+}
+
+
+void GLAPIENTRY
+_mesa_CompressedTextureSubImage2DEXT(GLuint texture, GLenum target,
+ GLint level, GLint xoffset,
+ GLint yoffset, GLsizei width,
+ GLsizei height, GLenum format,
+ GLsizei imageSize, const GLvoid *data)
+{
+ compressed_tex_sub_image_error(2, target, texture, level, xoffset, yoffset,
+ 0, width, height, 1, format, imageSize,
+ data, true, true,
+ "glCompressedTextureSubImage2DEXT");
}
{
compressed_tex_sub_image_no_error(2, 0, texture, level, xoffset, yoffset, 0,
width, height, 1, format, imageSize, data,
- true, "glCompressedTextureSubImage2D");
+ true, false,
+ "glCompressedTextureSubImage2D");
}
{
compressed_tex_sub_image_error(2, 0, texture, level, xoffset, yoffset, 0,
width, height, 1, format, imageSize, data,
- true, "glCompressedTextureSubImage2D");
+ true, false,
+ "glCompressedTextureSubImage2D");
}
void GLAPIENTRY
{
compressed_tex_sub_image_no_error(3, target, 0, level, xoffset, yoffset,
zoffset, width, height, depth, format,
- imageSize, data, false,
+ imageSize, data, false, false,
"glCompressedTexSubImage3D");
}
{
compressed_tex_sub_image_error(3, target, 0, level, xoffset, yoffset,
zoffset, width, height, depth, format,
- imageSize, data, false,
+ imageSize, data, false, false,
"glCompressedTexSubImage3D");
}
{
compressed_tex_sub_image_no_error(3, 0, texture, level, xoffset, yoffset,
zoffset, width, height, depth, format,
- imageSize, data, true,
+ imageSize, data, true, false,
"glCompressedTextureSubImage3D");
}
{
compressed_tex_sub_image_error(3, 0, texture, level, xoffset, yoffset,
zoffset, width, height, depth, format,
- imageSize, data, true,
+ imageSize, data, true, false,
"glCompressedTextureSubImage3D");
}