瀏覽代碼

mesa: texture crop rect state

tags/mesa_20090313
Brian Paul 17 年之前
父節點
當前提交
c01fbc7866
共有 3 個檔案被更改,包括 35 行新增1 行删除
  1. 4
    0
      src/mesa/main/glheader.h
  2. 1
    1
      src/mesa/main/mtypes.h
  3. 30
    0
      src/mesa/main/texparam.c

+ 4
- 0
src/mesa/main/glheader.h 查看文件

@@ -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

+ 1
- 1
src/mesa/main/mtypes.h 查看文件

@@ -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

+ 30
- 0
src/mesa/main/texparam.c 查看文件

@@ -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…
取消
儲存