summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker/st_context.h
diff options
context:
space:
mode:
authorBrian <brian.paul@tungstengraphics.com>2008-02-20 11:20:25 -0700
committerBrian <brian.paul@tungstengraphics.com>2008-02-20 11:20:25 -0700
commit58edb0683db45c449b219988a8715cf8fd69e42d (patch)
tree1797c58be2dfa6768673e8542a754797d37065e4 /src/mesa/state_tracker/st_context.h
parent22a0b85eaebf767f5b03bf899596e09f5cc03876 (diff)
gallium: state tracker didn't always notify drivers of texobj data changes
Calling glTexSubImage() or glTexImage() to replace texture data didn't reliably cause pipe->set_sampler_texture() to get called so drivers didn't always get notified of new texture data. The st_texture_object->pt pointer doesn't always indicate changed data so added a dirtyData field.
Diffstat (limited to 'src/mesa/state_tracker/st_context.h')
-rw-r--r--src/mesa/state_tracker/st_context.h22
1 files changed, 1 insertions, 21 deletions
diff --git a/src/mesa/state_tracker/st_context.h b/src/mesa/state_tracker/st_context.h
index 59d1590f05..5be4769be4 100644
--- a/src/mesa/state_tracker/st_context.h
+++ b/src/mesa/state_tracker/st_context.h
@@ -59,26 +59,6 @@ struct st_tracked_state {
-struct st_texture_image
-{
- struct gl_texture_image base;
-
- /* These aren't stored in gl_texture_image
- */
- GLuint level;
- GLuint face;
-
- /* If stImage->pt != NULL, image data is stored here.
- * Else if stImage->base.Data != NULL, image is stored there.
- * Else there is no image data.
- */
- struct pipe_texture *pt;
-
- struct pipe_surface *surface;
-};
-
-
-
struct st_context
{
GLcontext *ctx;
@@ -106,7 +86,7 @@ struct st_context
struct pipe_clip_state clip;
struct pipe_constant_buffer constants[2];
struct pipe_framebuffer_state framebuffer;
- struct pipe_texture *sampler_texture[PIPE_MAX_SAMPLERS];
+ struct st_texture_object *sampler_texture[PIPE_MAX_SAMPLERS];
struct pipe_poly_stipple poly_stipple;
struct pipe_scissor_state scissor;
struct pipe_viewport_state viewport;