diff options
author | José Fonseca <jfonseca@vmware.com> | 2009-04-08 15:30:31 +0100 |
---|---|---|
committer | José Fonseca <jfonseca@vmware.com> | 2009-04-08 16:26:05 +0100 |
commit | 923b4413a63530be37cd44eed29910db21b39ac6 (patch) | |
tree | 907e7cead01dfe1010b4373ce2d8363ee482a20f /src/gallium/state_trackers/wgl/shared/stw_framebuffer.c | |
parent | 927eb8fe4cc8a5ed583aad1dafa98d091d7602f4 (diff) |
wgl: Integrate the trace driver on debug builds.
Diffstat (limited to 'src/gallium/state_trackers/wgl/shared/stw_framebuffer.c')
-rw-r--r-- | src/gallium/state_trackers/wgl/shared/stw_framebuffer.c | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/src/gallium/state_trackers/wgl/shared/stw_framebuffer.c b/src/gallium/state_trackers/wgl/shared/stw_framebuffer.c index c289a8aeff..c96c4b8dfa 100644 --- a/src/gallium/state_trackers/wgl/shared/stw_framebuffer.c +++ b/src/gallium/state_trackers/wgl/shared/stw_framebuffer.c @@ -32,6 +32,12 @@ #include "pipe/p_screen.h" #include "state_tracker/st_context.h" #include "state_tracker/st_public.h" + +#ifdef DEBUG +#include "trace/tr_screen.h" +#include "trace/tr_texture.h" +#endif + #include "stw_framebuffer.h" #include "stw_device.h" #include "stw_public.h" @@ -246,7 +252,8 @@ stw_swap_buffers( HDC hdc ) { struct stw_framebuffer *fb; - struct pipe_surface *surf; + struct pipe_screen *screen; + struct pipe_surface *surface; fb = framebuffer_from_hdc( hdc ); if (fb == NULL) @@ -257,14 +264,20 @@ stw_swap_buffers( */ st_notify_swapbuffers( fb->stfb ); - if(st_get_framebuffer_surface( fb->stfb, ST_SURFACE_BACK_LEFT, &surf )) { - stw_dev->stw_winsys->flush_frontbuffer(stw_dev->screen, - surf, - hdc ); - } - else { - /* FIXME: this shouldn't happen, but does on glean */ + screen = stw_dev->screen; + + if(!st_get_framebuffer_surface( fb->stfb, ST_SURFACE_BACK_LEFT, &surface )) + /* FIXME: this shouldn't happen, but does on glean */ + return FALSE; + +#ifdef DEBUG + if(stw_dev->trace_running) { + screen = trace_screen(screen)->screen; + surface = trace_surface(surface)->surface; } +#endif + stw_dev->stw_winsys->flush_frontbuffer( screen, surface, hdc ); + return TRUE; } |