intel: save/restore GL matrix mode in intel_meta_set_passthrough_transform(), intel_m...
authorBrian Paul <brianp@vmware.com>
Mon, 26 Jan 2009 21:01:32 +0000 (14:01 -0700)
committerBrian Paul <brianp@vmware.com>
Mon, 26 Jan 2009 21:01:32 +0000 (14:01 -0700)
src/mesa/drivers/dri/intel/intel_context.h
src/mesa/drivers/dri/intel/intel_pixel.c

index 553abbb56049c474c289289f62cbf3164a0a92c4..9a84451e7cb870f3345805b79e233ae983f0827b 100644 (file)
@@ -168,6 +168,7 @@ struct intel_context
 
       GLint saved_vp_x, saved_vp_y;
       GLsizei saved_vp_width, saved_vp_height;
+      GLenum saved_matrix_mode;
    } meta;
 
    GLint refcount;
index cf2f32d38453623f956dceca209ce64b37b0872f..5e32288844c48b0eb664866d5391f45d260aaf42 100644 (file)
@@ -181,6 +181,7 @@ intel_meta_set_passthrough_transform(struct intel_context *intel)
    intel->meta.saved_vp_y = ctx->Viewport.Y;
    intel->meta.saved_vp_width = ctx->Viewport.Width;
    intel->meta.saved_vp_height = ctx->Viewport.Height;
+   intel->meta.saved_matrix_mode = ctx->Transform.MatrixMode;
 
    _mesa_Viewport(0, 0, ctx->DrawBuffer->Width, ctx->DrawBuffer->Height);
 
@@ -202,6 +203,8 @@ intel_meta_restore_transform(struct intel_context *intel)
    _mesa_MatrixMode(GL_MODELVIEW);
    _mesa_PopMatrix();
 
+   _mesa_MatrixMode(intel->meta.saved_matrix_mode);
+
    _mesa_Viewport(intel->meta.saved_vp_x, intel->meta.saved_vp_y,
                  intel->meta.saved_vp_width, intel->meta.saved_vp_height);
 }