mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-01 03:48:06 +02:00
mesa: extend _mesa_lookup_or_create_texture to support EXT_dsa
Adds a boolean to implement EXT_dsa specifics. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Signed-off-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
274104ec38
commit
29194648a6
2 changed files with 19 additions and 3 deletions
|
|
@ -1705,12 +1705,28 @@ _mesa_bind_texture(struct gl_context *ctx, GLenum target,
|
|||
|
||||
struct gl_texture_object *
|
||||
_mesa_lookup_or_create_texture(struct gl_context *ctx, GLenum target,
|
||||
GLuint texName, bool no_error,
|
||||
GLuint texName, bool no_error, bool is_ext_dsa,
|
||||
const char *caller)
|
||||
{
|
||||
struct gl_texture_object *newTexObj = NULL;
|
||||
int targetIndex;
|
||||
|
||||
if (is_ext_dsa) {
|
||||
if (_mesa_is_proxy_texture(target)) {
|
||||
/* EXT_dsa allows proxy targets only when texName is 0 */
|
||||
if (texName != 0) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION, "%s(target = %s)", caller,
|
||||
_mesa_enum_to_string(target));
|
||||
return NULL;
|
||||
}
|
||||
return _mesa_get_current_tex_object(ctx, target);
|
||||
}
|
||||
if (GL_TEXTURE_CUBE_MAP_POSITIVE_X <= target &&
|
||||
target <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z) {
|
||||
target = GL_TEXTURE_CUBE_MAP;
|
||||
}
|
||||
}
|
||||
|
||||
targetIndex = _mesa_tex_target_to_index(ctx, target);
|
||||
if (!no_error && targetIndex < 0) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "%s(target = %s)", caller,
|
||||
|
|
@ -1780,7 +1796,7 @@ bind_texture(struct gl_context *ctx, GLenum target, GLuint texName,
|
|||
GLenum texunit, bool no_error, const char *caller)
|
||||
{
|
||||
struct gl_texture_object *newTexObj =
|
||||
_mesa_lookup_or_create_texture(ctx, target, texName, no_error,
|
||||
_mesa_lookup_or_create_texture(ctx, target, texName, no_error, false,
|
||||
"glBindTexture");
|
||||
if (!newTexObj)
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -179,7 +179,7 @@ _mesa_bind_texture(struct gl_context *ctx, GLenum target,
|
|||
|
||||
extern struct gl_texture_object *
|
||||
_mesa_lookup_or_create_texture(struct gl_context *ctx, GLenum target,
|
||||
GLuint texName, bool no_error,
|
||||
GLuint texName, bool no_error, bool is_ext_dsa,
|
||||
const char *name);
|
||||
|
||||
/*@}*/
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue