mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
Always call Driver.SetReadBuffer() in copy pixels functions, just to be safe
This commit is contained in:
parent
fda3b1a4b1
commit
acdb6db846
1 changed files with 16 additions and 2 deletions
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: s_copypix.c,v 1.1 2000/10/31 18:00:04 keithw Exp $ */
|
||||
/* $Id: s_copypix.c,v 1.2 2000/10/31 23:11:06 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
|
|
@ -329,7 +329,10 @@ copy_rgba_pixels(GLcontext *ctx, GLint srcx, GLint srcy,
|
|||
/* If read and draw buffer are different we must do buffer switching */
|
||||
saveReadAlpha = ctx->ReadBuffer->Alpha;
|
||||
changeBuffer = ctx->Pixel.ReadBuffer != ctx->Color.DrawBuffer
|
||||
|| ctx->DrawBuffer != ctx->ReadBuffer;
|
||||
|| ctx->DrawBuffer != ctx->ReadBuffer;
|
||||
|
||||
(*ctx->Driver.SetReadBuffer)( ctx, ctx->ReadBuffer,
|
||||
ctx->Pixel.DriverReadBuffer );
|
||||
|
||||
if (overlapping) {
|
||||
GLint ssy = sy;
|
||||
|
|
@ -487,6 +490,10 @@ copy_rgba_pixels(GLcontext *ctx, GLint srcx, GLint srcy,
|
|||
}
|
||||
}
|
||||
|
||||
/* Restore pixel source to be the draw buffer (for blending, etc) */
|
||||
(*ctx->Driver.SetReadBuffer)( ctx, ctx->DrawBuffer,
|
||||
ctx->Color.DriverDrawBuffer );
|
||||
|
||||
if (overlapping)
|
||||
FREE(tmpImage);
|
||||
}
|
||||
|
|
@ -534,6 +541,9 @@ static void copy_ci_pixels( GLcontext *ctx,
|
|||
changeBuffer = ctx->Pixel.ReadBuffer != ctx->Color.DrawBuffer
|
||||
|| ctx->DrawBuffer != ctx->ReadBuffer;
|
||||
|
||||
(*ctx->Driver.SetReadBuffer)( ctx, ctx->ReadBuffer,
|
||||
ctx->Pixel.DriverReadBuffer );
|
||||
|
||||
if (overlapping) {
|
||||
GLint ssy = sy;
|
||||
tmpImage = (GLuint *) MALLOC(width * height * sizeof(GLuint));
|
||||
|
|
@ -592,6 +602,10 @@ static void copy_ci_pixels( GLcontext *ctx,
|
|||
}
|
||||
}
|
||||
|
||||
/* Restore pixel source to be the draw buffer (for blending, etc) */
|
||||
(*ctx->Driver.SetReadBuffer)( ctx, ctx->DrawBuffer,
|
||||
ctx->Color.DriverDrawBuffer );
|
||||
|
||||
if (overlapping)
|
||||
FREE(tmpImage);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue