diff options
author | Brian Paul <[email protected]> | 2011-01-20 13:32:35 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2011-01-20 13:37:26 -0700 |
commit | 4ef955a12a526dcad388133b6dc8426a51054cdd (patch) | |
tree | e76e5fa219a1d7cef0d20bacef102a56979ad951 /src/gallium/tests/graw/quad-tex.c | |
parent | 22eeb1b331767abb29d03be2f11cfe9d8626c440 (diff) |
graw: fix logic error in pixel format selection
The loop to choose a pixel format for the window was incrementing
'i' after we succeeded in creating the window so if we chose format[0]
for graw_create_window_and_screen() we were putting format[1] in
the pipe_resource template for creating the render target.
This only worked because of the order of the elements in the formats[]
array.
The graw_xlib.c code now properly compares the requested gallium pixel
format against the visual's color layout.
Update all the graw demos to fix the off-by-one-i error.
Diffstat (limited to 'src/gallium/tests/graw/quad-tex.c')
-rw-r--r-- | src/gallium/tests/graw/quad-tex.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/gallium/tests/graw/quad-tex.c b/src/gallium/tests/graw/quad-tex.c index 952131d765b..58ca639d207 100644 --- a/src/gallium/tests/graw/quad-tex.c +++ b/src/gallium/tests/graw/quad-tex.c @@ -2,6 +2,7 @@ * any utility code, just the graw interface and gallium. */ +#include <stdio.h> #include "state_tracker/graw.h" #include "pipe/p_screen.h" #include "pipe/p_context.h" @@ -303,15 +304,18 @@ static void init( void ) * Also, no easy way of querying supported formats if the screen * cannot be created first. */ - for (i = 0; - window == NULL && formats[i] != PIPE_FORMAT_NONE; - i++) { - - screen = graw_create_window_and_screen(0,0,300,300, + for (i = 0; formats[i] != PIPE_FORMAT_NONE; i++) { + screen = graw_create_window_and_screen(0, 0, 300, 300, formats[i], &window); + if (window && screen) + break; } - + if (!screen || !window) { + fprintf(stderr, "Unable to create window\n"); + exit(1); + } + ctx = screen->context_create(screen, NULL); if (ctx == NULL) exit(3); |