mesa,st/mesa: implement GL_RGB565 from ARB_ES2_compatibility

This was not implemented, because the spec was changed just recently.

Everything has been in place already.

Gallium has PIPE_FORMAT_B5G6R5_UNORM, while Mesa has MESA_FORMAT_RGB565.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Marek Olšák 2012-07-12 14:07:41 +02:00
parent fe911c1d43
commit 1a06e8454e
6 changed files with 29 additions and 0 deletions

View file

@ -1296,6 +1296,9 @@ _mesa_base_fbo_format(struct gl_context *ctx, GLenum internalFormat)
case GL_RGB10_A2UI:
return ctx->Extensions.ARB_texture_rgb10_a2ui ? GL_RGBA : 0;
case GL_RGB565:
return ctx->Extensions.ARB_ES2_compatibility ? GL_RGB : 0;
default:
return 0;
}

View file

@ -770,6 +770,7 @@ _mesa_is_color_format(GLenum format)
case GL_R3_G3_B2:
case GL_RGB4:
case GL_RGB5:
case GL_RGB565:
case GL_RGB8:
case GL_RGB10:
case GL_RGB12:

View file

@ -258,6 +258,16 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat,
; /* fallthrough */
}
if (ctx->Extensions.ARB_ES2_compatibility) {
switch (internalFormat) {
case GL_RGB565:
RETURN_IF_SUPPORTED(MESA_FORMAT_RGB565);
break;
default:
; /* fallthrough */
}
}
if (ctx->Extensions.MESA_ycbcr_texture) {
if (internalFormat == GL_YCBCR_MESA) {
if (type == GL_UNSIGNED_SHORT_8_8_MESA)

View file

@ -138,6 +138,15 @@ _mesa_base_tex_format( struct gl_context *ctx, GLint internalFormat )
}
}
if (ctx->Extensions.ARB_ES2_compatibility) {
switch (internalFormat) {
case GL_RGB565:
return GL_RGB;
default:
; /* fallthrough */
}
}
if (ctx->Extensions.ARB_depth_texture) {
switch (internalFormat) {
case GL_DEPTH_COMPONENT:

View file

@ -403,6 +403,8 @@ internal_format(struct gl_context *ctx, GLenum format, GLenum type)
case GL_UNSIGNED_SHORT_5_6_5:
case GL_UNSIGNED_SHORT_5_6_5_REV:
return GL_RGB565;
case GL_UNSIGNED_SHORT_5_5_5_1:
case GL_UNSIGNED_SHORT_1_5_5_5_REV:
return GL_RGB5_A1;

View file

@ -793,6 +793,10 @@ static const struct format_mapping format_map[] = {
{ PIPE_FORMAT_B5G6R5_UNORM, PIPE_FORMAT_B5G5R5A1_UNORM,
DEFAULT_RGBA_FORMATS }
},
{
{ GL_RGB565 },
{ PIPE_FORMAT_B5G6R5_UNORM, DEFAULT_RGBA_FORMATS }
},
/* basic Alpha formats */
{