mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-16 08:20:36 +01:00
mesa: texture crop rect state
This commit is contained in:
parent
5af60556ed
commit
c01fbc7866
3 changed files with 35 additions and 1 deletions
|
|
@ -176,6 +176,10 @@
|
|||
#endif
|
||||
|
||||
|
||||
#ifndef GL_OES_draw_texture
|
||||
#define GL_TEXTURE_CROP_RECT_OES 0x8B9D
|
||||
#endif
|
||||
|
||||
|
||||
#if !defined(CAPI) && defined(WIN32) && !defined(BUILD_FOR_SNAP)
|
||||
#define CAPI _cdecl
|
||||
|
|
|
|||
|
|
@ -1434,6 +1434,7 @@ struct gl_texture_object
|
|||
GLenum DepthMode; /**< GL_ARB_depth_texture */
|
||||
GLint _MaxLevel; /**< actual max mipmap level (q in the spec) */
|
||||
GLfloat _MaxLambda; /**< = _MaxLevel - BaseLevel (q - b in spec) */
|
||||
GLint CropRect[4]; /**< GL_OES_draw_texture */
|
||||
GLboolean GenerateMipmap; /**< GL_SGIS_generate_mipmap */
|
||||
GLboolean _Complete; /**< Is texture object complete? */
|
||||
|
||||
|
|
@ -1443,7 +1444,6 @@ struct gl_texture_object
|
|||
/** GL_EXT_paletted_texture */
|
||||
struct gl_color_table Palette;
|
||||
|
||||
|
||||
/**
|
||||
* \name For device driver.
|
||||
* Note: instead of attaching driver data to this pointer, it's preferable
|
||||
|
|
|
|||
|
|
@ -409,6 +409,14 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
|
|||
}
|
||||
}
|
||||
break;
|
||||
#ifdef FEATURE_OES_draw_texture
|
||||
case GL_TEXTURE_CROP_RECT_OES:
|
||||
texObj->CropRect[0] = (GLint) params[0];
|
||||
texObj->CropRect[1] = (GLint) params[1];
|
||||
texObj->CropRect[2] = (GLint) params[2];
|
||||
texObj->CropRect[3] = (GLint) params[3];
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
_mesa_error(ctx, GL_INVALID_ENUM,
|
||||
|
|
@ -447,6 +455,12 @@ _mesa_TexParameteriv( GLenum target, GLenum pname, const GLint *params )
|
|||
fparam[2] = INT_TO_FLOAT(params[2]);
|
||||
fparam[3] = INT_TO_FLOAT(params[3]);
|
||||
}
|
||||
else if (pname == GL_TEXTURE_CROP_RECT_OES) {
|
||||
fparam[0] = (GLfloat) params[0];
|
||||
fparam[1] = (GLfloat) params[1];
|
||||
fparam[2] = (GLfloat) params[2];
|
||||
fparam[3] = (GLfloat) params[3];
|
||||
}
|
||||
else {
|
||||
if (pname == GL_TEXTURE_PRIORITY)
|
||||
fparam[0] = INT_TO_FLOAT(params[0]);
|
||||
|
|
@ -885,6 +899,14 @@ _mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params )
|
|||
else
|
||||
error = 1;
|
||||
break;
|
||||
#ifdef FEATURE_OES_draw_texture
|
||||
case GL_TEXTURE_CROP_RECT_OES:
|
||||
params[0] = obj->CropRect[0];
|
||||
params[0] = obj->CropRect[1];
|
||||
params[0] = obj->CropRect[2];
|
||||
params[0] = obj->CropRect[3];
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
error = 1;
|
||||
break;
|
||||
|
|
@ -1027,6 +1049,14 @@ _mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params )
|
|||
return;
|
||||
}
|
||||
break;
|
||||
#ifdef FEATURE_OES_draw_texture
|
||||
case GL_TEXTURE_CROP_RECT_OES:
|
||||
params[0] = obj->CropRect[0];
|
||||
params[0] = obj->CropRect[1];
|
||||
params[0] = obj->CropRect[2];
|
||||
params[0] = obj->CropRect[3];
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
; /* silence warnings */
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue