mesa: get_current_tex_unit() helper function
This commit is contained in:
@@ -775,6 +775,18 @@ _mesa_is_proxy_texture(GLenum target)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return pointer to current texture unit.
|
||||||
|
* This the texture unit set by glActiveTexture(), not glClientActiveTexture().
|
||||||
|
*/
|
||||||
|
static INLINE struct gl_texture_unit *
|
||||||
|
get_current_tex_unit(GLcontext *ctx)
|
||||||
|
{
|
||||||
|
ASSERT(ctx->Texture.CurrentUnit < Elements(ctx->Texture.Unit));
|
||||||
|
return &(ctx->Texture.Unit[ctx->Texture.CurrentUnit]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the texture object that corresponds to the target of the given texture unit.
|
* Get the texture object that corresponds to the target of the given texture unit.
|
||||||
*
|
*
|
||||||
@@ -2250,7 +2262,7 @@ getteximage_error_check(GLcontext *ctx, GLenum target, GLint level,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
texUnit = &(ctx->Texture.Unit[ctx->Texture.CurrentUnit]);
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
texImage = _mesa_select_tex_image(ctx, texObj, target, level);
|
texImage = _mesa_select_tex_image(ctx, texObj, target, level);
|
||||||
if (!texImage) {
|
if (!texImage) {
|
||||||
@@ -2330,7 +2342,7 @@ _mesa_GetTexImage( GLenum target, GLint level, GLenum format,
|
|||||||
GET_CURRENT_CONTEXT(ctx);
|
GET_CURRENT_CONTEXT(ctx);
|
||||||
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
|
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
|
||||||
|
|
||||||
texUnit = &(ctx->Texture.Unit[ctx->Texture.CurrentUnit]);
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
if (!texObj || _mesa_is_proxy_texture(target)) {
|
if (!texObj || _mesa_is_proxy_texture(target)) {
|
||||||
_mesa_error(ctx, GL_INVALID_ENUM, "glGetTexImage(target)");
|
_mesa_error(ctx, GL_INVALID_ENUM, "glGetTexImage(target)");
|
||||||
@@ -2497,7 +2509,7 @@ _mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat,
|
|||||||
if (ctx->NewState & _MESA_NEW_TRANSFER_STATE)
|
if (ctx->NewState & _MESA_NEW_TRANSFER_STATE)
|
||||||
_mesa_update_state(ctx);
|
_mesa_update_state(ctx);
|
||||||
|
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
{
|
{
|
||||||
@@ -2605,7 +2617,7 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat,
|
|||||||
if (ctx->NewState & _MESA_NEW_TRANSFER_STATE)
|
if (ctx->NewState & _MESA_NEW_TRANSFER_STATE)
|
||||||
_mesa_update_state(ctx);
|
_mesa_update_state(ctx);
|
||||||
|
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
{
|
{
|
||||||
@@ -2708,7 +2720,7 @@ _mesa_TexImage3D( GLenum target, GLint level, GLint internalFormat,
|
|||||||
if (ctx->NewState & _MESA_NEW_TRANSFER_STATE)
|
if (ctx->NewState & _MESA_NEW_TRANSFER_STATE)
|
||||||
_mesa_update_state(ctx);
|
_mesa_update_state(ctx);
|
||||||
|
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
{
|
{
|
||||||
@@ -2814,7 +2826,7 @@ _mesa_TexSubImage1D( GLenum target, GLint level,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
assert(texObj);
|
assert(texObj);
|
||||||
|
|
||||||
@@ -2874,7 +2886,7 @@ _mesa_TexSubImage2D( GLenum target, GLint level,
|
|||||||
return; /* error was detected */
|
return; /* error was detected */
|
||||||
}
|
}
|
||||||
|
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
{
|
{
|
||||||
@@ -2926,7 +2938,7 @@ _mesa_TexSubImage3D( GLenum target, GLint level,
|
|||||||
return; /* error was detected */
|
return; /* error was detected */
|
||||||
}
|
}
|
||||||
|
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
|
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
@@ -2987,7 +2999,7 @@ _mesa_CopyTexImage1D( GLenum target, GLint level,
|
|||||||
postConvWidth, 1, border))
|
postConvWidth, 1, border))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
{
|
{
|
||||||
@@ -3053,7 +3065,7 @@ _mesa_CopyTexImage2D( GLenum target, GLint level, GLenum internalFormat,
|
|||||||
postConvWidth, postConvHeight, border))
|
postConvWidth, postConvHeight, border))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
|
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
@@ -3113,7 +3125,7 @@ _mesa_CopyTexSubImage1D( GLenum target, GLint level,
|
|||||||
if (copytexsubimage_error_check1(ctx, 1, target, level))
|
if (copytexsubimage_error_check1(ctx, 1, target, level))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
|
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
@@ -3168,7 +3180,7 @@ _mesa_CopyTexSubImage2D( GLenum target, GLint level,
|
|||||||
if (copytexsubimage_error_check1(ctx, 2, target, level))
|
if (copytexsubimage_error_check1(ctx, 2, target, level))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
|
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
@@ -3223,7 +3235,7 @@ _mesa_CopyTexSubImage3D( GLenum target, GLint level,
|
|||||||
if (copytexsubimage_error_check1(ctx, 3, target, level))
|
if (copytexsubimage_error_check1(ctx, 3, target, level))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
|
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
@@ -3477,7 +3489,7 @@ _mesa_CompressedTexImage1DARB(GLenum target, GLint level,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
|
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
@@ -3531,7 +3543,7 @@ _mesa_CompressedTexImage1DARB(GLenum target, GLint level,
|
|||||||
struct gl_texture_unit *texUnit;
|
struct gl_texture_unit *texUnit;
|
||||||
struct gl_texture_object *texObj;
|
struct gl_texture_object *texObj;
|
||||||
struct gl_texture_image *texImage;
|
struct gl_texture_image *texImage;
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
|
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
@@ -3574,7 +3586,7 @@ _mesa_CompressedTexImage2DARB(GLenum target, GLint level,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
|
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
@@ -3630,7 +3642,7 @@ _mesa_CompressedTexImage2DARB(GLenum target, GLint level,
|
|||||||
struct gl_texture_unit *texUnit;
|
struct gl_texture_unit *texUnit;
|
||||||
struct gl_texture_object *texObj;
|
struct gl_texture_object *texObj;
|
||||||
struct gl_texture_image *texImage;
|
struct gl_texture_image *texImage;
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
|
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
@@ -3670,7 +3682,7 @@ _mesa_CompressedTexImage3DARB(GLenum target, GLint level,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
{
|
{
|
||||||
@@ -3724,7 +3736,7 @@ _mesa_CompressedTexImage3DARB(GLenum target, GLint level,
|
|||||||
struct gl_texture_unit *texUnit;
|
struct gl_texture_unit *texUnit;
|
||||||
struct gl_texture_object *texObj;
|
struct gl_texture_object *texObj;
|
||||||
struct gl_texture_image *texImage;
|
struct gl_texture_image *texImage;
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
{
|
{
|
||||||
@@ -3763,7 +3775,7 @@ _mesa_CompressedTexSubImage1DARB(GLenum target, GLint level, GLint xoffset,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
{
|
{
|
||||||
@@ -3820,7 +3832,7 @@ _mesa_CompressedTexSubImage2DARB(GLenum target, GLint level, GLint xoffset,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
{
|
{
|
||||||
@@ -3877,7 +3889,7 @@ _mesa_CompressedTexSubImage3DARB(GLenum target, GLint level, GLint xoffset,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
_mesa_lock_texture(ctx, texObj);
|
_mesa_lock_texture(ctx, texObj);
|
||||||
{
|
{
|
||||||
@@ -3924,7 +3936,7 @@ _mesa_GetCompressedTexImageARB(GLenum target, GLint level, GLvoid *img)
|
|||||||
GET_CURRENT_CONTEXT(ctx);
|
GET_CURRENT_CONTEXT(ctx);
|
||||||
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
|
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
|
||||||
|
|
||||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
texUnit = get_current_tex_unit(ctx);
|
||||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||||
if (!texObj) {
|
if (!texObj) {
|
||||||
_mesa_error(ctx, GL_INVALID_ENUM, "glGetCompressedTexImageARB");
|
_mesa_error(ctx, GL_INVALID_ENUM, "glGetCompressedTexImageARB");
|
||||||
|
Reference in New Issue
Block a user