Mesa (master): mesa: Attempt to pair up Driver. RenderTexture and FinishRenderTexture()
Eric Anholt
anholt at kemper.freedesktop.org
Fri Nov 6 19:42:57 UTC 2009
Module: Mesa
Branch: master
Commit: 6b68482e6869bdc03339ef5380d7273e14a61a56
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6b68482e6869bdc03339ef5380d7273e14a61a56
Author: Eric Anholt <eric at anholt.net>
Date: Wed Nov 4 14:31:30 2009 -0800
mesa: Attempt to pair up Driver.RenderTexture and FinishRenderTexture()
This is probably not 100% complete (bind vs unbind may still not pair up
exactly), but it should help out drivers which are relying on
FinishRenderTexture to be called when we're done rendering to a particular
texture level, not just when we're done rendering to the object at all.
This is the case for the one consumer of FinishRenderTexture() so far: the
gallium state tracker. Noticed when trying to make use of FRT() in the intel
driver.
---
src/mesa/main/fbobject.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index 319d0f2..c445455 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -233,9 +233,13 @@ _mesa_set_texture_attachment(GLcontext *ctx,
if (att->Texture == texObj) {
/* re-attaching same texture */
ASSERT(att->Type == GL_TEXTURE);
+ if (ctx->Driver.FinishRenderTexture)
+ ctx->Driver.FinishRenderTexture(ctx, att);
}
else {
/* new attachment */
+ if (ctx->Driver.FinishRenderTexture && att->Texture)
+ ctx->Driver.FinishRenderTexture(ctx, att);
_mesa_remove_attachment(ctx, att);
att->Type = GL_TEXTURE;
assert(!att->Texture);
More information about the mesa-commit
mailing list