[Mesa-dev] [PATCH 03/40] mesa: Eliminate parameters to dd_function_table::Viewport

Alexander von Gluck IV kallisti5 at unixzen.com
Tue Mar 18 17:56:56 PDT 2014


On 03/17/2014 10:15 AM, Brian Paul wrote:
> On 03/16/2014 02:52 PM, Alexander von Gluck IV wrote:
>> On 01/10/2014 07:40 PM, Ian Romanick wrote:
>>> From: Ian Romanick <ian.d.romanick at intel.com>
>>>
>>> No driver uses them.  They will just be annoying in future patches.
>>>
>>> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
>>> ---
>>>   src/mesa/drivers/dri/i915/intel_context.c  | 15 ++-------------
>>>   src/mesa/drivers/dri/i965/brw_context.c    |  7 +------
>>>   src/mesa/drivers/dri/r200/r200_state.c     |  8 +-------
>>>   src/mesa/drivers/dri/radeon/radeon_state.c |  8 +-------
>>>   src/mesa/drivers/dri/swrast/swrast.c       |  6 +-----
>>>   src/mesa/drivers/windows/gdi/wmesa.c       |  4 +---
>>>   src/mesa/drivers/x11/xm_dd.c               |  6 +-----
>>>   src/mesa/main/dd.h                         |  2 +-
>>>   src/mesa/main/viewport.c                   |  2 +-
>>>   src/mesa/state_tracker/st_cb_viewport.c    |  3 +--
>>>   10 files changed, 11 insertions(+), 50 deletions(-)
>>>
>>
>>> diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h
>>> index 6e73691..f438278 100644
>>> --- a/src/mesa/main/dd.h
>>> +++ b/src/mesa/main/dd.h
>>> @@ -546,7 +546,7 @@ struct dd_function_table {
>>>                           struct gl_texture_object *texObj,
>>>                           GLenum pname, const GLfloat *params);
>>>      /** Set the viewport */
>>> -   void (*Viewport)(struct gl_context *ctx, GLint x, GLint y,
>>> GLsizei w, GLsizei h);
>>> +   void (*Viewport)(struct gl_context *ctx);
>>>      /*@}*/
>>>
>>>
>>> diff --git a/src/mesa/main/viewport.c b/src/mesa/main/viewport.c
>>> index 91578ba..7ea1d5f 100644
>>> --- a/src/mesa/main/viewport.c
>>> +++ b/src/mesa/main/viewport.c
>>> @@ -99,7 +99,7 @@ _mesa_set_viewport(struct gl_context *ctx, GLint x,
>>> GLint y,
>>>         /* Many drivers will use this call to check for window size
>>> changes
>>>          * and reallocate the z/stencil/accum/etc buffers if needed.
>>>          */
>>> -      ctx->Driver.Viewport(ctx, x, y, width, height);
>>> +      ctx->Driver.Viewport(ctx);
>>>      }
>>>   }
>>
>>
>> *cough* just realized that Haiku uses these arguments while compiling
>> 10.1 :-)
>>
>> https://urldefense.proofpoint.com/v1/url?u=http://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/targets/haiku-softpipe/GalliumContext.cpp%23n46&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=lGQMzzTgII0I7jefp2FHq7WtZ%2BTLs8wadB%2BiIj9xpBY%3D%0A&m=FUUWgsVWn2uSKA2anEYrFUz1AAFGwBsHlviyFxD4P2Y%3D%0A&s=448fac8302d6466285b0fa7c314b9ac6af1bbf3f416f3c01f253e0cc06058048
>>
>>
>> https://urldefense.proofpoint.com/v1/url?u=http://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/targets/haiku-softpipe/GalliumContext.cpp%23n346&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=lGQMzzTgII0I7jefp2FHq7WtZ%2BTLs8wadB%2BiIj9xpBY%3D%0A&m=FUUWgsVWn2uSKA2anEYrFUz1AAFGwBsHlviyFxD4P2Y%3D%0A&s=6a77c1ecbe298d1535e63c6205d966d36b6c7dc60e08f7c586e5e9705160fc94
>>
>>
>> Anyone know any easy alternatives off the top of their head?
> 
> I think you can just grab the new viewport dims from
> ctx->ViewportArray[0].X/Y/Width/Height.
> 
> -Brian

Thanks!  That solved it.   I actually think we could drop the Viewport
function as the renderer is notified on window size changes (and we
don't have to continuously poll the window size)

Every time I tried to make it NULL though resulted in crashes, so this
works for now :-)

 -- Alex



More information about the mesa-dev mailing list