Francisco,

Will Mesa continue to build after these changes for people who have not
tracked the latest glproto and dri2proto repos?  

I'd prefer to be able to build Mesa on at least the most recently
released major distros, which may require the use of some #ifdefs in the
changes.

Keith

On Mon, 2010-02-08 at 10:25 -0800, Francisco Jerez wrote:
> Signed-off-by: Francisco Jerez <curroje...@riseup.net>
> ---
>  glx/glxdri2.c |   28 +++++++++++++++++++++++++---
>  1 files changed, 25 insertions(+), 3 deletions(-)
> 
> diff --git a/glx/glxdri2.c b/glx/glxdri2.c
> index 0f998de..dae7b42 100644
> --- a/glx/glxdri2.c
> +++ b/glx/glxdri2.c
> @@ -67,6 +67,7 @@ struct __GLXDRIscreen {
>  
>      xf86EnterVTProc  *enterVT;
>      xf86LeaveVTProc  *leaveVT;
> +    PreConfigureWindowProcPtr PreConfigureWindow;
>  
>      const __DRIcoreExtension *core;
>      const __DRIdri2Extension *dri2;
> @@ -217,13 +218,13 @@ __glXDRIdrawableSwapBuffers(ClientPtr client, 
> __GLXdrawable *drawable)
>      __GLXDRIscreen *screen = priv->screen;
>      CARD64 unused;
>  
> -    if (screen->flush)
> -     (*screen->flush->flushInvalidate)(priv->driDrawable);
> -
>      if (DRI2SwapBuffers(client, drawable->pDraw, 0, 0, 0, &unused,
>                       __glXdriSwapEvent, drawable->pDraw) != Success)
>       return FALSE;
>  
> +    if (screen->flush)
> +     (*screen->flush->invalidate)(priv->driDrawable);
> +
>      return TRUE;
>  }
>  
> @@ -607,6 +608,24 @@ glxDRILeaveVT (int index, int flags)
>  }
>  
>  static void
> +glxDRIPreConfigureWindow(WindowPtr pWin, int x, int y, int w, int h, int bw,
> +                      WindowPtr pSib)
> +{
> +    ScreenPtr pScreen = pWin->drawable.pScreen;
> +    __GLXDRIscreen *screen = (__GLXDRIscreen *)glxGetScreen(pScreen);
> +    __GLXDRIdrawable *draw = (__GLXDRIdrawable 
> *)glxGetDrawableFromWindow(pWin);
> +
> +    if (screen->PreConfigureWindow)
> +         (*screen->PreConfigureWindow)(pWin, x, y, w, h, bw, pSib);
> +
> +    if (!draw || (draw->height == h && draw->width == w))
> +         return;
> +
> +    if (screen->flush)
> +         screen->flush->invalidate(draw->driDrawable);
> +}
> +
> +static void
>  initializeExtensions(__GLXDRIscreen *screen)
>  {
>      const __DRIextension **extensions;
> @@ -782,6 +801,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
>      screen->leaveVT = pScrn->LeaveVT;
>      pScrn->LeaveVT = glxDRILeaveVT;
>  
> +    screen->PreConfigureWindow = pScreen->PreConfigureWindow;
> +    pScreen->PreConfigureWindow = glxDRIPreConfigureWindow;
> +
>      LogMessage(X_INFO,
>              "AIGLX: Loaded and initialized %s\n", filename);
>  



------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to