summaryrefslogtreecommitdiff
path: root/src/glitz_framebuffer.c
diff options
context:
space:
mode:
authorDavid Reveman <davidr@novell.com>2006-03-13 14:23:44 +0000
committerDavid Reveman <davidr@novell.com>2006-03-13 14:23:44 +0000
commit0ea6d11c7107d774ac0c563aa32578633522ac39 (patch)
treec7b8402737588d1448d981f375e9a62f6c8aa0f5 /src/glitz_framebuffer.c
parent1c50002ff39dc1add5e80394b4a16000c7a2d0cb (diff)
Add support for avoiding context switches
Diffstat (limited to 'src/glitz_framebuffer.c')
-rw-r--r--src/glitz_framebuffer.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/glitz_framebuffer.c b/src/glitz_framebuffer.c
index 1ccc877..ca3a2e2 100644
--- a/src/glitz_framebuffer.c
+++ b/src/glitz_framebuffer.c
@@ -201,7 +201,8 @@ _glitz_fbo_attach_notify (void *abstract_drawable,
if (!TEXTURE_ALLOCATED (texture))
{
drawable->other->backend->push_current (drawable->other, NULL,
- GLITZ_ANY_CONTEXT_CURRENT);
+ GLITZ_ANY_CONTEXT_CURRENT,
+ NULL);
glitz_texture_allocate (gl, texture);
drawable->other->backend->pop_current (drawable->other);
@@ -225,7 +226,8 @@ _glitz_fbo_detach_notify (void *abstract_drawable,
GLITZ_GL_DRAWABLE (drawable->other);
drawable->other->backend->push_current (drawable->other, NULL,
- GLITZ_ANY_CONTEXT_CURRENT);
+ GLITZ_ANY_CONTEXT_CURRENT,
+ NULL);
gl->bind_framebuffer (GLITZ_GL_FRAMEBUFFER, drawable->fb);
@@ -258,13 +260,14 @@ _glitz_fbo_detach_notify (void *abstract_drawable,
static glitz_bool_t
_glitz_fbo_push_current (void *abstract_drawable,
glitz_surface_t *surface,
- glitz_constraint_t constraint)
+ glitz_constraint_t constraint,
+ glitz_bool_t *restore_state)
{
glitz_fbo_drawable_t *drawable = (glitz_fbo_drawable_t *)
abstract_drawable;
drawable->other->backend->push_current (drawable->other, surface,
- constraint);
+ constraint, restore_state);
if (constraint == GLITZ_DRAWABLE_CURRENT)
{
@@ -350,7 +353,8 @@ _glitz_fbo_destroy (void *abstract_drawable)
GLITZ_GL_DRAWABLE (drawable->other);
drawable->other->backend->push_current (drawable->other, NULL,
- GLITZ_ANY_CONTEXT_CURRENT);
+ GLITZ_ANY_CONTEXT_CURRENT,
+ NULL);
gl->delete_framebuffers (1, &drawable->fb);