mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 11:08:03 +02:00
mesa: Switch ycbcr glGetTexImage() to using MapTextureImage().
Tested-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
440dfb4583
commit
0c513a9c1b
1 changed files with 12 additions and 5 deletions
|
|
@ -141,17 +141,24 @@ get_tex_depth_stencil(struct gl_context *ctx, GLuint dimensions,
|
|||
static void
|
||||
get_tex_ycbcr(struct gl_context *ctx, GLuint dimensions,
|
||||
GLenum format, GLenum type, GLvoid *pixels,
|
||||
const struct gl_texture_image *texImage)
|
||||
struct gl_texture_image *texImage)
|
||||
{
|
||||
const GLint width = texImage->Width;
|
||||
const GLint height = texImage->Height;
|
||||
const GLint depth = texImage->Depth;
|
||||
const GLint rowstride = texImage->RowStride;
|
||||
const GLushort *src = (const GLushort *) texImage->Data;
|
||||
GLint img, row;
|
||||
|
||||
for (img = 0; img < depth; img++) {
|
||||
GLubyte *srcMap;
|
||||
GLint rowstride;
|
||||
|
||||
/* map src texture buffer */
|
||||
ctx->Driver.MapTextureImage(ctx, texImage, img,
|
||||
0, 0, width, height, GL_MAP_READ_BIT,
|
||||
&srcMap, &rowstride);
|
||||
|
||||
for (row = 0; row < height; row++) {
|
||||
const GLubyte *src = srcMap + row * rowstride;
|
||||
void *dest = _mesa_image_address(dimensions, &ctx->Pack, pixels,
|
||||
width, height, format, type,
|
||||
img, row, 0);
|
||||
|
|
@ -168,9 +175,9 @@ get_tex_ycbcr(struct gl_context *ctx, GLuint dimensions,
|
|||
else if (ctx->Pack.SwapBytes) {
|
||||
_mesa_swap2((GLushort *) dest, width);
|
||||
}
|
||||
|
||||
src += rowstride;
|
||||
}
|
||||
|
||||
ctx->Driver.UnmapTextureImage(ctx, texImage, img);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue