mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 04:50:11 +01:00
added new texture image functions, minor clean-up
This commit is contained in:
parent
45c7e2abe7
commit
d6998a714c
1 changed files with 177 additions and 146 deletions
|
|
@ -677,100 +677,101 @@ int fxTexGetInfo(int w, int h, GrLOD_t *lodlevel, GrAspectRatio_t *ar,
|
|||
void fxTexGetFormat(GLenum glformat, GrTextureFormat_t *tfmt, GLint *ifmt)
|
||||
{
|
||||
switch(glformat) {
|
||||
case 1:
|
||||
case GL_LUMINANCE:
|
||||
case GL_LUMINANCE4:
|
||||
case GL_LUMINANCE8:
|
||||
case GL_LUMINANCE12:
|
||||
case GL_LUMINANCE16:
|
||||
if(tfmt)
|
||||
(*tfmt)=GR_TEXFMT_INTENSITY_8;
|
||||
if(ifmt)
|
||||
(*ifmt)=GL_LUMINANCE;
|
||||
break;
|
||||
case 2:
|
||||
case GL_LUMINANCE_ALPHA:
|
||||
case GL_LUMINANCE4_ALPHA4:
|
||||
case GL_LUMINANCE6_ALPHA2:
|
||||
case GL_LUMINANCE8_ALPHA8:
|
||||
case GL_LUMINANCE12_ALPHA4:
|
||||
case GL_LUMINANCE12_ALPHA12:
|
||||
case GL_LUMINANCE16_ALPHA16:
|
||||
if(tfmt)
|
||||
(*tfmt)=GR_TEXFMT_ALPHA_INTENSITY_88;
|
||||
if(ifmt)
|
||||
(*ifmt)=GL_LUMINANCE_ALPHA;
|
||||
break;
|
||||
case GL_INTENSITY:
|
||||
case GL_INTENSITY4:
|
||||
case GL_INTENSITY8:
|
||||
case GL_INTENSITY12:
|
||||
case GL_INTENSITY16:
|
||||
if(tfmt)
|
||||
(*tfmt)=GR_TEXFMT_ALPHA_8;
|
||||
if(ifmt)
|
||||
(*ifmt)=GL_INTENSITY;
|
||||
break;
|
||||
case GL_ALPHA:
|
||||
case GL_ALPHA4:
|
||||
case GL_ALPHA8:
|
||||
case GL_ALPHA12:
|
||||
case GL_ALPHA16:
|
||||
if(tfmt)
|
||||
(*tfmt)=GR_TEXFMT_ALPHA_8;
|
||||
if(ifmt)
|
||||
(*ifmt)=GL_ALPHA;
|
||||
break;
|
||||
case 3:
|
||||
case GL_RGB:
|
||||
case GL_R3_G3_B2:
|
||||
case GL_RGB4:
|
||||
case GL_RGB5:
|
||||
case GL_RGB8:
|
||||
case GL_RGB10:
|
||||
case GL_RGB12:
|
||||
case GL_RGB16:
|
||||
if(tfmt)
|
||||
(*tfmt)=GR_TEXFMT_RGB_565;
|
||||
if(ifmt)
|
||||
(*ifmt)=GL_RGB;
|
||||
break;
|
||||
case 4:
|
||||
case GL_RGBA:
|
||||
case GL_RGBA2:
|
||||
case GL_RGBA4:
|
||||
case GL_RGBA8:
|
||||
case GL_RGB10_A2:
|
||||
case GL_RGBA12:
|
||||
case GL_RGBA16:
|
||||
if(tfmt)
|
||||
(*tfmt)=GR_TEXFMT_ARGB_4444;
|
||||
if(ifmt)
|
||||
(*ifmt)=GL_RGBA;
|
||||
break;
|
||||
case GL_RGB5_A1:
|
||||
if(tfmt)
|
||||
(*tfmt)=GR_TEXFMT_ARGB_1555;
|
||||
if(ifmt)
|
||||
(*ifmt)=GL_RGBA;
|
||||
break;
|
||||
case GL_COLOR_INDEX:
|
||||
case GL_COLOR_INDEX1_EXT:
|
||||
case GL_COLOR_INDEX2_EXT:
|
||||
case GL_COLOR_INDEX4_EXT:
|
||||
case GL_COLOR_INDEX8_EXT:
|
||||
case GL_COLOR_INDEX12_EXT:
|
||||
case GL_COLOR_INDEX16_EXT:
|
||||
if(tfmt)
|
||||
(*tfmt)=GR_TEXFMT_P_8;
|
||||
if(ifmt)
|
||||
(*ifmt)=GL_RGBA;
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr,"fx Driver: unsupported internalFormat in fxTexGetFormat()\n");
|
||||
fxCloseHardware();
|
||||
exit(-1);
|
||||
break;
|
||||
case 1:
|
||||
case GL_LUMINANCE:
|
||||
case GL_LUMINANCE4:
|
||||
case GL_LUMINANCE8:
|
||||
case GL_LUMINANCE12:
|
||||
case GL_LUMINANCE16:
|
||||
if(tfmt)
|
||||
(*tfmt)=GR_TEXFMT_INTENSITY_8;
|
||||
if(ifmt)
|
||||
(*ifmt)=GL_LUMINANCE;
|
||||
break;
|
||||
case 2:
|
||||
case GL_LUMINANCE_ALPHA:
|
||||
case GL_LUMINANCE4_ALPHA4:
|
||||
case GL_LUMINANCE6_ALPHA2:
|
||||
case GL_LUMINANCE8_ALPHA8:
|
||||
case GL_LUMINANCE12_ALPHA4:
|
||||
case GL_LUMINANCE12_ALPHA12:
|
||||
case GL_LUMINANCE16_ALPHA16:
|
||||
if(tfmt)
|
||||
(*tfmt)=GR_TEXFMT_ALPHA_INTENSITY_88;
|
||||
if(ifmt)
|
||||
(*ifmt)=GL_LUMINANCE_ALPHA;
|
||||
break;
|
||||
case GL_INTENSITY:
|
||||
case GL_INTENSITY4:
|
||||
case GL_INTENSITY8:
|
||||
case GL_INTENSITY12:
|
||||
case GL_INTENSITY16:
|
||||
if(tfmt)
|
||||
(*tfmt)=GR_TEXFMT_ALPHA_8;
|
||||
if(ifmt)
|
||||
(*ifmt)=GL_INTENSITY;
|
||||
break;
|
||||
case GL_ALPHA:
|
||||
case GL_ALPHA4:
|
||||
case GL_ALPHA8:
|
||||
case GL_ALPHA12:
|
||||
case GL_ALPHA16:
|
||||
if(tfmt)
|
||||
(*tfmt)=GR_TEXFMT_ALPHA_8;
|
||||
if(ifmt)
|
||||
(*ifmt)=GL_ALPHA;
|
||||
break;
|
||||
case 3:
|
||||
case GL_RGB:
|
||||
case GL_R3_G3_B2:
|
||||
case GL_RGB4:
|
||||
case GL_RGB5:
|
||||
case GL_RGB8:
|
||||
case GL_RGB10:
|
||||
case GL_RGB12:
|
||||
case GL_RGB16:
|
||||
if(tfmt)
|
||||
(*tfmt)=GR_TEXFMT_RGB_565;
|
||||
if(ifmt)
|
||||
(*ifmt)=GL_RGB;
|
||||
break;
|
||||
case 4:
|
||||
case GL_RGBA:
|
||||
case GL_RGBA2:
|
||||
case GL_RGBA4:
|
||||
case GL_RGBA8:
|
||||
case GL_RGB10_A2:
|
||||
case GL_RGBA12:
|
||||
case GL_RGBA16:
|
||||
if(tfmt)
|
||||
(*tfmt)=GR_TEXFMT_ARGB_4444;
|
||||
if(ifmt)
|
||||
(*ifmt)=GL_RGBA;
|
||||
break;
|
||||
case GL_RGB5_A1:
|
||||
if(tfmt)
|
||||
(*tfmt)=GR_TEXFMT_ARGB_1555;
|
||||
if(ifmt)
|
||||
(*ifmt)=GL_RGBA;
|
||||
break;
|
||||
case GL_COLOR_INDEX:
|
||||
case GL_COLOR_INDEX1_EXT:
|
||||
case GL_COLOR_INDEX2_EXT:
|
||||
case GL_COLOR_INDEX4_EXT:
|
||||
case GL_COLOR_INDEX8_EXT:
|
||||
case GL_COLOR_INDEX12_EXT:
|
||||
case GL_COLOR_INDEX16_EXT:
|
||||
if(tfmt)
|
||||
(*tfmt)=GR_TEXFMT_P_8;
|
||||
if(ifmt)
|
||||
(*ifmt)=GL_RGBA; /* XXX why is this RGBA? */
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr,
|
||||
"fx Driver: unsupported internalFormat in fxTexGetFormat()\n");
|
||||
fxCloseHardware();
|
||||
exit(-1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -781,58 +782,58 @@ static int fxIsTexSupported(GLenum target, GLint internalFormat,
|
|||
return GL_FALSE;
|
||||
|
||||
switch(internalFormat) {
|
||||
case GL_INTENSITY:
|
||||
case GL_INTENSITY4:
|
||||
case GL_INTENSITY8:
|
||||
case GL_INTENSITY12:
|
||||
case GL_INTENSITY16:
|
||||
case 1:
|
||||
case GL_LUMINANCE:
|
||||
case GL_LUMINANCE4:
|
||||
case GL_LUMINANCE8:
|
||||
case GL_LUMINANCE12:
|
||||
case GL_LUMINANCE16:
|
||||
case 2:
|
||||
case GL_LUMINANCE_ALPHA:
|
||||
case GL_LUMINANCE4_ALPHA4:
|
||||
case GL_LUMINANCE6_ALPHA2:
|
||||
case GL_LUMINANCE8_ALPHA8:
|
||||
case GL_LUMINANCE12_ALPHA4:
|
||||
case GL_LUMINANCE12_ALPHA12:
|
||||
case GL_LUMINANCE16_ALPHA16:
|
||||
case GL_ALPHA:
|
||||
case GL_ALPHA4:
|
||||
case GL_ALPHA8:
|
||||
case GL_ALPHA12:
|
||||
case GL_ALPHA16:
|
||||
case 3:
|
||||
case GL_RGB:
|
||||
case GL_R3_G3_B2:
|
||||
case GL_RGB4:
|
||||
case GL_RGB5:
|
||||
case GL_RGB8:
|
||||
case GL_RGB10:
|
||||
case GL_RGB12:
|
||||
case GL_RGB16:
|
||||
case 4:
|
||||
case GL_RGBA:
|
||||
case GL_RGBA2:
|
||||
case GL_RGBA4:
|
||||
case GL_RGB5_A1:
|
||||
case GL_RGBA8:
|
||||
case GL_RGB10_A2:
|
||||
case GL_RGBA12:
|
||||
case GL_RGBA16:
|
||||
case GL_COLOR_INDEX:
|
||||
case GL_COLOR_INDEX1_EXT:
|
||||
case GL_COLOR_INDEX2_EXT:
|
||||
case GL_COLOR_INDEX4_EXT:
|
||||
case GL_COLOR_INDEX8_EXT:
|
||||
case GL_COLOR_INDEX12_EXT:
|
||||
case GL_COLOR_INDEX16_EXT:
|
||||
break;
|
||||
default:
|
||||
return GL_FALSE;
|
||||
case GL_INTENSITY:
|
||||
case GL_INTENSITY4:
|
||||
case GL_INTENSITY8:
|
||||
case GL_INTENSITY12:
|
||||
case GL_INTENSITY16:
|
||||
case 1:
|
||||
case GL_LUMINANCE:
|
||||
case GL_LUMINANCE4:
|
||||
case GL_LUMINANCE8:
|
||||
case GL_LUMINANCE12:
|
||||
case GL_LUMINANCE16:
|
||||
case 2:
|
||||
case GL_LUMINANCE_ALPHA:
|
||||
case GL_LUMINANCE4_ALPHA4:
|
||||
case GL_LUMINANCE6_ALPHA2:
|
||||
case GL_LUMINANCE8_ALPHA8:
|
||||
case GL_LUMINANCE12_ALPHA4:
|
||||
case GL_LUMINANCE12_ALPHA12:
|
||||
case GL_LUMINANCE16_ALPHA16:
|
||||
case GL_ALPHA:
|
||||
case GL_ALPHA4:
|
||||
case GL_ALPHA8:
|
||||
case GL_ALPHA12:
|
||||
case GL_ALPHA16:
|
||||
case 3:
|
||||
case GL_RGB:
|
||||
case GL_R3_G3_B2:
|
||||
case GL_RGB4:
|
||||
case GL_RGB5:
|
||||
case GL_RGB8:
|
||||
case GL_RGB10:
|
||||
case GL_RGB12:
|
||||
case GL_RGB16:
|
||||
case 4:
|
||||
case GL_RGBA:
|
||||
case GL_RGBA2:
|
||||
case GL_RGBA4:
|
||||
case GL_RGB5_A1:
|
||||
case GL_RGBA8:
|
||||
case GL_RGB10_A2:
|
||||
case GL_RGBA12:
|
||||
case GL_RGBA16:
|
||||
case GL_COLOR_INDEX:
|
||||
case GL_COLOR_INDEX1_EXT:
|
||||
case GL_COLOR_INDEX2_EXT:
|
||||
case GL_COLOR_INDEX4_EXT:
|
||||
case GL_COLOR_INDEX8_EXT:
|
||||
case GL_COLOR_INDEX12_EXT:
|
||||
case GL_COLOR_INDEX16_EXT:
|
||||
break;
|
||||
default:
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
if(image->Width>256)
|
||||
|
|
@ -1426,6 +1427,36 @@ void fxDDTexSubImg(GLcontext *ctx, GLenum target,
|
|||
}
|
||||
|
||||
|
||||
|
||||
/**********************************************************************/
|
||||
/**** NEW TEXTURE IMAGE FUNCTIONS ****/
|
||||
/**********************************************************************/
|
||||
|
||||
GLboolean fxDDTexImage2D(GLcontext *ctx, GLenum target, GLint level,
|
||||
GLenum format, GLenum type, const GLvoid *pixels,
|
||||
const struct gl_pixelstore_attrib *packing,
|
||||
struct gl_texture_object *texObj,
|
||||
struct gl_texture_image *texImage,
|
||||
GLboolean *retainInternalCopy)
|
||||
{
|
||||
*retainInternalCopy = GL_TRUE;
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
|
||||
GLboolean fxDDTexSubImage2D(GLcontext *ctx, GLenum target, GLint level,
|
||||
GLint xoffset, GLint yoffset,
|
||||
GLsizei width, GLsizei height,
|
||||
GLenum format, GLenum type, const GLvoid *pixels,
|
||||
const struct gl_pixelstore_attrib *packing,
|
||||
struct gl_texture_object *texObj,
|
||||
struct gl_texture_image *texImage)
|
||||
{
|
||||
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
|
||||
#else
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue