glamor: glamor_poly_point_nf cannot fail for non-DDX pixmaps
All of the glamor _nf functions must check to see if the DDX can access the pixmap directly before returning failure back to the driver; this restructures the point code to split out the _nf checking from the _gl code. Signed-off-by: Keith Packard <keithp@keithp.com> Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
d5dd1d6371
commit
8d88b90953
|
@ -35,8 +35,8 @@ static const glamor_facet glamor_facet_point = {
|
||||||
.vs_exec = GLAMOR_POS(gl_Position, primitive),
|
.vs_exec = GLAMOR_POS(gl_Position, primitive),
|
||||||
};
|
};
|
||||||
|
|
||||||
Bool
|
static Bool
|
||||||
glamor_poly_point_nf(DrawablePtr drawable, GCPtr gc, int mode, int npt, DDXPointPtr ppt)
|
glamor_poly_point_gl(DrawablePtr drawable, GCPtr gc, int mode, int npt, DDXPointPtr ppt)
|
||||||
{
|
{
|
||||||
ScreenPtr screen = drawable->pScreen;
|
ScreenPtr screen = drawable->pScreen;
|
||||||
glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
|
glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
|
||||||
|
@ -123,7 +123,22 @@ void
|
||||||
glamor_poly_point(DrawablePtr drawable, GCPtr gc, int mode, int npt,
|
glamor_poly_point(DrawablePtr drawable, GCPtr gc, int mode, int npt,
|
||||||
DDXPointPtr ppt)
|
DDXPointPtr ppt)
|
||||||
{
|
{
|
||||||
if (glamor_poly_point_nf(drawable, gc, mode, npt, ppt))
|
if (glamor_poly_point_gl(drawable, gc, mode, npt, ppt))
|
||||||
return;
|
return;
|
||||||
miPolyPoint(drawable, gc, mode, npt, ppt);
|
miPolyPoint(drawable, gc, mode, npt, ppt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Bool
|
||||||
|
glamor_poly_point_nf(DrawablePtr drawable, GCPtr gc, int mode, int npt,
|
||||||
|
DDXPointPtr ppt)
|
||||||
|
{
|
||||||
|
if (glamor_poly_point_gl(drawable, gc, mode, npt, ppt))
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
if (glamor_ddx_fallback_check_pixmap(drawable) && glamor_ddx_fallback_check_gc(gc))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
miPolyPoint(drawable, gc, mode, npt, ppt);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue