Mesa (master): swrast: move resampleRow setup code in blit_nearest()
Brian Paul
brianp at kemper.freedesktop.org
Tue Jan 22 21:55:35 UTC 2013
Module: Mesa
Branch: master
Commit: 728bf86a23f6de137c0871ea87b09e75e55468a9
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=728bf86a23f6de137c0871ea87b09e75e55468a9
Author: Brian Paul <brianp at vmware.com>
Date: Mon Jan 21 08:59:25 2013 -0700
swrast: move resampleRow setup code in blit_nearest()
The resampleRow setup depends on pixelSize. For color buffers,
we don't know the pixelSize until we're in the buffer loop. Move
that code inside the loop.
Fixes: http://bugs.freedesktop.org/show_bug.cgi?id=59541
Reviewed-by: José Fonseca <jfonseca at vmware.com>
---
src/mesa/swrast/s_blit.c | 46 +++++++++++++++++++++++-----------------------
1 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/src/mesa/swrast/s_blit.c b/src/mesa/swrast/s_blit.c
index 3a4e7ee..605c80a 100644
--- a/src/mesa/swrast/s_blit.c
+++ b/src/mesa/swrast/s_blit.c
@@ -188,29 +188,6 @@ blit_nearest(struct gl_context *ctx,
return;
}
- /* choose row resampler */
- switch (pixelSize) {
- case 1:
- resampleRow = resample_row_1;
- break;
- case 2:
- resampleRow = resample_row_2;
- break;
- case 4:
- resampleRow = resample_row_4;
- break;
- case 8:
- resampleRow = resample_row_8;
- break;
- case 16:
- resampleRow = resample_row_16;
- break;
- default:
- _mesa_problem(ctx, "unexpected pixel size (%d) in blit_nearest",
- pixelSize);
- return;
- }
-
/* Blit to all the draw buffers */
for (i = 0; i < numDrawBuffers; i++) {
if (buffer == GL_COLOR_BUFFER_BIT) {
@@ -232,6 +209,29 @@ blit_nearest(struct gl_context *ctx,
}
}
+ /* choose row resampler */
+ switch (pixelSize) {
+ case 1:
+ resampleRow = resample_row_1;
+ break;
+ case 2:
+ resampleRow = resample_row_2;
+ break;
+ case 4:
+ resampleRow = resample_row_4;
+ break;
+ case 8:
+ resampleRow = resample_row_8;
+ break;
+ case 16:
+ resampleRow = resample_row_16;
+ break;
+ default:
+ _mesa_problem(ctx, "unexpected pixel size (%d) in blit_nearest",
+ pixelSize);
+ return;
+ }
+
if ((readRb == drawRb) ||
(readAtt->Texture && drawAtt->Texture &&
(readAtt->Texture == drawAtt->Texture))) {
More information about the mesa-commit
mailing list