diff options
author | Keith Whitwell <keith@tungstengraphics.com> | 2006-07-05 11:10:10 +0000 |
---|---|---|
committer | Keith Whitwell <keith@tungstengraphics.com> | 2006-07-05 11:10:10 +0000 |
commit | 6396b8e5c46eec5f60e75a9780c165c9f778bcca (patch) | |
tree | 265c2be1155b5d495a612fd00000971f87645911 | |
parent | 0f2144cd0c4d27603afcdfe8d3b6a64f8c7f5637 (diff) |
fix more problems with getting window/buffer dimensions wrong after binding a new drawable
-rw-r--r-- | src/mesa/drivers/dri/i915/i915_vtbl.c | 10 | ||||
-rw-r--r-- | src/mesa/main/buffers.c | 14 | ||||
-rw-r--r-- | src/mesa/main/buffers.h | 2 | ||||
-rw-r--r-- | src/mesa/main/context.c | 2 |
4 files changed, 15 insertions, 13 deletions
diff --git a/src/mesa/drivers/dri/i915/i915_vtbl.c b/src/mesa/drivers/dri/i915/i915_vtbl.c index b48566b615..bfab87f4f3 100644 --- a/src/mesa/drivers/dri/i915/i915_vtbl.c +++ b/src/mesa/drivers/dri/i915/i915_vtbl.c @@ -138,7 +138,7 @@ static void i915_emit_invarient_state( struct intel_context *intel ) { BATCH_LOCALS; - BEGIN_BATCH( 200, 0 ); + BEGIN_BATCH( 20, 0 ); OUT_BATCH(_3DSTATE_AA_CMD | AA_LINE_ECAAR_WIDTH_ENABLE | @@ -183,14 +183,6 @@ static void i915_emit_invarient_state( struct intel_context *intel ) (1)); OUT_BATCH(0); - /* XXX: Use this */ - OUT_BATCH(_3DSTATE_SCISSOR_ENABLE_CMD | - DISABLE_SCISSOR_RECT); - - OUT_BATCH(_3DSTATE_SCISSOR_RECT_0_CMD); - OUT_BATCH(0); - OUT_BATCH(0); - OUT_BATCH(_3DSTATE_DEPTH_SUBRECT_DISABLE); OUT_BATCH(_3DSTATE_LOAD_INDIRECT | 0); /* disable indirect state */ diff --git a/src/mesa/main/buffers.c b/src/mesa/main/buffers.c index f2ef0eab33..2f63125f0d 100644 --- a/src/mesa/main/buffers.c +++ b/src/mesa/main/buffers.c @@ -590,11 +590,9 @@ _mesa_ReadBuffer(GLenum buffer) * \note This function should only be called through the GL API, not * from device drivers (as was done in the past). */ -void GLAPIENTRY -_mesa_ResizeBuffersMESA( void ) -{ - GET_CURRENT_CONTEXT(ctx); +void _mesa_resizebuffers( GLcontext *ctx ) +{ ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH( ctx ); if (MESA_VERBOSE & VERBOSE_API) @@ -636,6 +634,14 @@ _mesa_ResizeBuffersMESA( void ) ctx->NewState |= _NEW_BUFFERS; /* to update scissor / window bounds */ } +void GLAPIENTRY +_mesa_ResizeBuffersMESA( void ) +{ + GET_CURRENT_CONTEXT(ctx); + + _mesa_resizebuffers( ctx ); +} + /* * XXX move somewhere else someday? diff --git a/src/mesa/main/buffers.h b/src/mesa/main/buffers.h index 547fb28886..2bb8b6aa3b 100644 --- a/src/mesa/main/buffers.h +++ b/src/mesa/main/buffers.h @@ -78,4 +78,6 @@ extern void _mesa_set_scissor( GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height ); +extern void _mesa_resizebuffers( GLcontext *ctx ); + #endif diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index bbefc32804..1efb7a681c 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -1635,6 +1635,8 @@ _mesa_make_current( GLcontext *newCtx, GLframebuffer *drawBuffer, if (readBuffer != drawBuffer && !readBuffer->Initialized) { initialize_framebuffer_size(newCtx, readBuffer); } + + _mesa_resizebuffers(newCtx); #endif if (newCtx->FirstTimeCurrent) { /* set initial viewport and scissor size now */ |