glamor: Add a screen argument to drop an ifdef from glamor_set_alu().

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
Eric Anholt 2013-12-27 01:17:10 -08:00
parent 9553020b71
commit f3f4fc7a65
5 changed files with 20 additions and 14 deletions

View File

@ -338,6 +338,7 @@ _glamor_copy_n_to_n(DrawablePtr src,
Bool upsidedown, Pixel bitplane, Bool upsidedown, Pixel bitplane,
void *closure, Bool fallback) void *closure, Bool fallback)
{ {
ScreenPtr screen = dst->pScreen;
PixmapPtr dst_pixmap, src_pixmap; PixmapPtr dst_pixmap, src_pixmap;
glamor_pixmap_private *dst_pixmap_priv, *src_pixmap_priv; glamor_pixmap_private *dst_pixmap_priv, *src_pixmap_priv;
glamor_screen_private *glamor_priv; glamor_screen_private *glamor_priv;
@ -354,7 +355,7 @@ _glamor_copy_n_to_n(DrawablePtr src,
src_pixmap = glamor_get_drawable_pixmap(src); src_pixmap = glamor_get_drawable_pixmap(src);
src_pixmap_priv = glamor_get_pixmap_private(src_pixmap); src_pixmap_priv = glamor_get_pixmap_private(src_pixmap);
glamor_priv = glamor_get_screen_private(dst->pScreen); glamor_priv = glamor_get_screen_private(screen);
DEBUGF("Copy %d %d %dx%d dx %d dy %d from %p to %p \n", DEBUGF("Copy %d %d %dx%d dx %d dy %d from %p to %p \n",
box[0].x1, box[0].y1, box[0].x1, box[0].y1,
@ -368,7 +369,7 @@ _glamor_copy_n_to_n(DrawablePtr src,
if (!glamor_set_planemask(dst_pixmap, gc->planemask)) if (!glamor_set_planemask(dst_pixmap, gc->planemask))
goto fall_back; goto fall_back;
glamor_get_context(glamor_priv); glamor_get_context(glamor_priv);
if (!glamor_set_alu(gc->alu)) { if (!glamor_set_alu(screen, gc->alu)) {
glamor_put_context(glamor_priv); glamor_put_context(glamor_priv);
goto fail; goto fail;
} }
@ -546,7 +547,7 @@ _glamor_copy_n_to_n(DrawablePtr src,
fail: fail:
glamor_get_context(glamor_priv); glamor_get_context(glamor_priv);
glamor_set_alu(GXcopy); glamor_set_alu(screen, GXcopy);
glamor_put_context(glamor_priv); glamor_put_context(glamor_priv);
if (ok) if (ok)

View File

@ -330,7 +330,7 @@ glamor_solid(PixmapPtr pixmap, int x, int y, int width, int height,
} }
glamor_get_context(glamor_priv); glamor_get_context(glamor_priv);
if (!glamor_set_alu(alu)) { if (!glamor_set_alu(screen, alu)) {
if (alu == GXclear) if (alu == GXclear)
fg_pixel = 0; fg_pixel = 0;
else { else {
@ -345,7 +345,7 @@ glamor_solid(PixmapPtr pixmap, int x, int y, int width, int height,
box.y2 = y + height; box.y2 = y + height;
glamor_solid_boxes(pixmap, &box, 1, fg_pixel); glamor_solid_boxes(pixmap, &box, 1, fg_pixel);
glamor_set_alu(GXcopy); glamor_set_alu(screen, GXcopy);
glamor_put_context(glamor_priv); glamor_put_context(glamor_priv);
return TRUE; return TRUE;

View File

@ -115,9 +115,17 @@ glamor_set_planemask(PixmapPtr pixmap, unsigned long planemask)
} }
Bool Bool
glamor_set_alu(unsigned char alu) glamor_set_alu(ScreenPtr screen, unsigned char alu)
{ {
#ifndef GLAMOR_GLES2 glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
if (glamor_priv->gl_flavor == GLAMOR_GL_ES2) {
if (alu != GXcopy)
return FALSE;
else
return TRUE;
}
if (alu == GXcopy) { if (alu == GXcopy) {
glDisable(GL_COLOR_LOGIC_OP); glDisable(GL_COLOR_LOGIC_OP);
return TRUE; return TRUE;
@ -173,10 +181,7 @@ glamor_set_alu(unsigned char alu)
glamor_fallback("unsupported alu %x\n", alu); glamor_fallback("unsupported alu %x\n", alu);
return FALSE; return FALSE;
} }
#else
if (alu != GXcopy)
return FALSE;
#endif
return TRUE; return TRUE;
} }

View File

@ -599,7 +599,7 @@ glamor_pixmap_fbo *glamor_es2_pixmap_read_prepare(PixmapPtr source, int x,
int no_alpha, int revert, int no_alpha, int revert,
int swap_rb); int swap_rb);
Bool glamor_set_alu(unsigned char alu); Bool glamor_set_alu(ScreenPtr screen, unsigned char alu);
Bool glamor_set_planemask(PixmapPtr pixmap, unsigned long planemask); Bool glamor_set_planemask(PixmapPtr pixmap, unsigned long planemask);
Bool glamor_change_window_attributes(WindowPtr pWin, unsigned long mask); Bool glamor_change_window_attributes(WindowPtr pWin, unsigned long mask);
RegionPtr glamor_bitmap_to_region(PixmapPtr pixmap); RegionPtr glamor_bitmap_to_region(PixmapPtr pixmap);

View File

@ -196,7 +196,7 @@ glamor_tile(PixmapPtr pixmap, PixmapPtr tile,
} }
glamor_get_context(glamor_priv); glamor_get_context(glamor_priv);
if (!glamor_set_alu(alu)) { if (!glamor_set_alu(screen, alu)) {
glamor_fallback("unsupported alu %x\n", alu); glamor_fallback("unsupported alu %x\n", alu);
glamor_put_context(glamor_priv); glamor_put_context(glamor_priv);
goto fail; goto fail;
@ -291,7 +291,7 @@ glamor_tile(PixmapPtr pixmap, PixmapPtr tile,
else else
_glamor_tile(pixmap, tile, x, y, width, height, tile_x, tile_y); _glamor_tile(pixmap, tile, x, y, width, height, tile_x, tile_y);
glamor_set_alu(GXcopy); glamor_set_alu(screen, GXcopy);
glamor_put_context(glamor_priv); glamor_put_context(glamor_priv);
return TRUE; return TRUE;
fail: fail: