mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-29 05:50:11 +01:00
st/dri: Fix setTexBuffer2 with __DRI_TEXTURE_FORMAT_RGB.
When the format is __DRI_TEXTURE_FORMAT_RGB, the texture should be treated as if there is no alpha channel.
This commit is contained in:
parent
821abff8c0
commit
968bf9634e
1 changed files with 17 additions and 1 deletions
|
|
@ -84,9 +84,25 @@ dri2_set_tex_buffer2(__DRIcontext *pDRICtx, GLint target,
|
|||
pt = drawable->textures[ST_ATTACHMENT_FRONT_LEFT];
|
||||
|
||||
if (pt) {
|
||||
enum pipe_format internal_format = pt->format;
|
||||
|
||||
if (format == __DRI_TEXTURE_FORMAT_RGB) {
|
||||
/* only need to cover the formats recognized by dri_fill_st_visual */
|
||||
switch (internal_format) {
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
internal_format = PIPE_FORMAT_B8G8R8X8_UNORM;
|
||||
break;
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
internal_format = PIPE_FORMAT_X8R8G8B8_UNORM;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ctx->st->teximage(ctx->st,
|
||||
(target == GL_TEXTURE_2D) ? ST_TEXTURE_2D : ST_TEXTURE_RECT,
|
||||
0, drawable->stvis.color_format, pt, FALSE);
|
||||
0, internal_format, pt, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue