return;
}
- _mesa_init_teximage_fields(ctx, texImage,
- 0, 0, 0, 0, /* w, h, d, border */
- GL_NONE, MESA_FORMAT_NONE);
+ _mesa_clear_texture_image(ctx, texImage);
}
}
}
GLboolean
-_mesa_is_legal_tex_storage_format(struct gl_context *ctx, GLenum internalformat)
+_mesa_is_legal_tex_storage_format(const struct gl_context *ctx,
+ GLenum internalformat)
{
/* check internal format - note that only sized formats are allowed */
switch (internalformat) {
}
/* additional checks for depth textures */
- if (!_mesa_legal_texture_base_format_for_target(ctx, target, internalformat,
- dims, dsa ?
- "glTextureStorage" :
- "glTexStorage"))
+ if (!_mesa_legal_texture_base_format_for_target(ctx, target, internalformat)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glTex%sStorage%uD(bad target for texture)",
+ suffix, dims);
return GL_TRUE;
+ }
return GL_FALSE;
}
dimensionsOK = _mesa_legal_texture_dimensions(ctx, target, 0,
width, height, depth, 0);
- sizeOK = ctx->Driver.TestProxyTexImage(ctx, target, 0, texFormat,
- width, height, depth, 0);
+ sizeOK = ctx->Driver.TestProxyTexImage(ctx, target, levels, 0, texFormat,
+ 1, width, height, depth);
if (_mesa_is_proxy_texture(target)) {
if (dimensionsOK && sizeOK) {