projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'mesa_7_6_branch' into mesa_7_7_branch
[mesa.git]
/
src
/
gallium
/
state_trackers
/
wgl
/
stw_framebuffer.c
diff --git
a/src/gallium/state_trackers/wgl/stw_framebuffer.c
b/src/gallium/state_trackers/wgl/stw_framebuffer.c
index 8a3e11b6b4075cd71b0765c537a81c0164e41902..6d095019815395a7899ebe333690ac396ac2be10 100644
(file)
--- a/
src/gallium/state_trackers/wgl/stw_framebuffer.c
+++ b/
src/gallium/state_trackers/wgl/stw_framebuffer.c
@@
-475,8
+475,6
@@
DrvPresentBuffers(HDC hdc, PGLPRESENTBUFFERSDATA data)
struct stw_framebuffer *fb;
struct pipe_screen *screen;
struct pipe_surface *surface;
struct stw_framebuffer *fb;
struct pipe_screen *screen;
struct pipe_surface *surface;
- unsigned surface_index;
- BOOL ret = FALSE;
fb = stw_framebuffer_from_hdc( hdc );
if (fb == NULL)
fb = stw_framebuffer_from_hdc( hdc );
if (fb == NULL)
@@
-484,9
+482,7
@@
DrvPresentBuffers(HDC hdc, PGLPRESENTBUFFERSDATA data)
screen = stw_dev->screen;
screen = stw_dev->screen;
- surface_index = (unsigned)(uintptr_t)data->pPrivateData;
- if(!st_get_framebuffer_surface( fb->stfb, surface_index, &surface ))
- goto fail;
+ surface = (struct pipe_surface *)data->pPrivateData;
#ifdef DEBUG
if(stw_dev->trace_running) {
#ifdef DEBUG
if(stw_dev->trace_running) {
@@
-520,15
+516,11
@@
DrvPresentBuffers(HDC hdc, PGLPRESENTBUFFERSDATA data)
stw_dev->stw_winsys->present( screen, surface, hdc );
}
stw_dev->stw_winsys->present( screen, surface, hdc );
}
- ret = TRUE;
-
-fail:
-
stw_framebuffer_update(fb);
stw_framebuffer_release(fb);
stw_framebuffer_update(fb);
stw_framebuffer_release(fb);
- return
ret
;
+ return
TRUE
;
}
}
@@
-540,7
+532,7
@@
fail:
BOOL
stw_framebuffer_present_locked(HDC hdc,
struct stw_framebuffer *fb,
BOOL
stw_framebuffer_present_locked(HDC hdc,
struct stw_framebuffer *fb,
-
unsigned surface_index
)
+
struct pipe_surface *surface
)
{
if(stw_dev->callbacks.wglCbPresentBuffers &&
stw_dev->stw_winsys->compose) {
{
if(stw_dev->callbacks.wglCbPresentBuffers &&
stw_dev->stw_winsys->compose) {
@@
-551,7
+543,7
@@
stw_framebuffer_present_locked(HDC hdc,
data.magic2 = 0;
data.AdapterLuid = stw_dev->AdapterLuid;
data.rect = fb->client_rect;
data.magic2 = 0;
data.AdapterLuid = stw_dev->AdapterLuid;
data.rect = fb->client_rect;
- data.pPrivateData = (void *)
(uintptr_t)surface_index
;
+ data.pPrivateData = (void *)
surface
;
stw_framebuffer_release(fb);
stw_framebuffer_release(fb);
@@
-559,13
+551,6
@@
stw_framebuffer_present_locked(HDC hdc,
}
else {
struct pipe_screen *screen = stw_dev->screen;
}
else {
struct pipe_screen *screen = stw_dev->screen;
- struct pipe_surface *surface;
-
- if(!st_get_framebuffer_surface( fb->stfb, surface_index, &surface )) {
- /* FIXME: this shouldn't happen, but does on glean */
- stw_framebuffer_release(fb);
- return FALSE;
- }
#ifdef DEBUG
if(stw_dev->trace_running) {
#ifdef DEBUG
if(stw_dev->trace_running) {
@@
-590,6
+575,7
@@
DrvSwapBuffers(
HDC hdc )
{
struct stw_framebuffer *fb;
HDC hdc )
{
struct stw_framebuffer *fb;
+ struct pipe_surface *surface = NULL;
fb = stw_framebuffer_from_hdc( hdc );
if (fb == NULL)
fb = stw_framebuffer_from_hdc( hdc );
if (fb == NULL)
@@
-600,12
+586,9
@@
DrvSwapBuffers(
return TRUE;
}
return TRUE;
}
- /* If we're swapping the buffer associated with the current context
- * we have to flush any pending rendering commands first.
- */
- st_notify_swapbuffers( fb->stfb );
+ st_swapbuffers(fb->stfb, &surface, NULL);
- return stw_framebuffer_present_locked(hdc, fb,
ST_SURFACE_BACK_LEFT
);
+ return stw_framebuffer_present_locked(hdc, fb,
surface
);
}
}