[PATCH v2 03/10] dri2: Change driver interface to support DRI2Drawable
Ville Syrjälä
ville.syrjala at nokia.com
Mon Feb 14 11:45:05 PST 2011
On Thu, Feb 10, 2011 at 06:22:24PM +0200, Pauli Nieminen wrote:
> On 10/02/11 17:40 +0200, Ville Syrjälä wrote:
> > On Tue, Feb 08, 2011 at 11:42:49PM +0200, ext Pauli wrote:
> > > From: Pauli Nieminen <ext-pauli.nieminen at nokia.com>
> > >
> > > void
> > > -DRI2WaitMSCComplete(ClientPtr client, DrawablePtr pDraw, int frame,
> > > - unsigned int tv_sec, unsigned int tv_usec)
> > > +DRI2WaitMSCComplete2(DRI2DrawablePtr pPriv, int frame,
> > > + unsigned int tv_sec, unsigned int tv_usec,
> > > + void *data)
> > > {
> > > - DRI2DrawablePtr pPriv;
> > > -
> > > - pPriv = DRI2GetDrawable(pDraw);
> > > - if (pPriv == NULL)
> > > - return;
> > > + ClientPtr client = data;
> >
> > Why void* instead of ClientPtr?
> >
>
> Because driver shouldn't care what is in the data pointer.
>
> Because it will contain special structure to track if client has disconnected
> later on. Only reason to pass ClienPtr there for now is to make this patch
> work without client state tracking.
OK. Since you're already shoveling stuff into these opaque structures,
you could also hide the DRI2SwapEventPtr pointer from the driver by
moving it into _DRI2SwapCompleteDataRec. You already moved the
accompanying data pointer there. Then again, that would also involve
a new version of the ScheduleSwap function, so perhaps it's not worth
it.
I also find the lack of symmetry between the remaining v1 functions
and the new v2 functions a little bit distasteful, but on the other
hand it helps in minimizing the driver changes.
--
Ville Syrjälä
More information about the xorg-devel
mailing list