xserver-multidpi/glamor
Eric Anholt 4c9a200725 glamor: Allow nested mapping of pixmaps.
The common pattern is to do nested if statements making calls to
prepare_access() and then pop those mappings back off in each set of
braces.  Some cases checked for src == dst to avoid leaking mappings,
but others didn't.  Others didn't even do the nested mappings, so a
failure in the outer map would result in trying to umap the inner and
failing.

By allowing nested mappings, we can fix both problems by not requiring
the care from the caller, plus we can allow a simpler nesting of all
the prepares in one if statement.

v2: Add a comment about nested unmap behavior, and just reuse the
    glamor_access_t enum.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Markus Wick <markus@selfnet.de>
2014-03-17 14:30:56 -07:00
..
glamor_addtraps.c glamor: Fix some indent damage of putting a ' ' after the '*' for pointers. 2014-01-27 09:30:47 -08:00
glamor_compositerects.c glamor: Remove an extra copy of RegionNil(). 2014-01-27 09:30:47 -08:00
glamor_context.h glamor: Put in a pluggable context switcher for GLX versus EGL. 2014-02-14 18:30:01 -08:00
glamor_copyarea.c glamor: Replace some goofy enum-likes with a real enum. 2014-03-17 14:30:51 -07:00
glamor_copyplane.c glamor: Apply x-indent.sh. 2014-01-27 09:30:47 -08:00
glamor_copywindow.c glamor: Apply x-indent.sh. 2014-01-27 09:30:47 -08:00
glamor_core.c glamor: Allow nested mapping of pixmaps. 2014-03-17 14:30:56 -07:00
glamor_debug.h glamor: Apply x-indent.sh. 2014-01-27 09:30:47 -08:00
glamor_egl_stubs.c glamor: Put in a pluggable context switcher for GLX versus EGL. 2014-02-14 18:30:01 -08:00
glamor_egl.c glamor: Return the stride/size for glamor_dri3_name_from_pixmap(), too. 2014-03-17 14:30:49 -07:00
glamor_eglmodule.c xorg: Connect up the glamor XV code, xorg DDX-only for now. 2014-03-05 13:10:20 -08:00
glamor_fbo.c glamor: Replace some goofy enum-likes with a real enum. 2014-03-17 14:30:51 -07:00
glamor_fill.c glamor: Fix up doxygen for glamor_fill.c. 2014-03-17 14:30:50 -07:00
glamor_fillspans.c glamor: Apply x-indent.sh. 2014-01-27 09:30:47 -08:00
glamor_getimage.c glamor: Drop duplicated lines for getting pixmap state in GetImage. 2014-03-17 14:30:49 -07:00
glamor_getspans.c glamor: Silence warnings for non-debug builds. 2014-01-27 09:30:47 -08:00
glamor_glx.c glamor: Drop the set of the context to NULL at the end of glamor ops. 2014-03-17 14:30:41 -07:00
glamor_glyphblt.c glamor: Convert use of the old "pointer" typedef to "void *". 2014-01-27 09:30:47 -08:00
glamor_glyphs.c glamor: Do glyph private init at screeninit time, and other stuff at CSR. 2014-03-17 14:30:45 -07:00
glamor_gradient.c glamor: Fix a mismatched glamor_get/put_context(). 2014-03-10 13:57:21 -07:00
glamor_largepixmap.c glamor: Fix some indent damage of putting a ' ' after the '*' for pointers. 2014-01-27 09:30:47 -08:00
glamor_picture.c glamor: Pass pixmaps around to unifdef glamor_iformat_for_depth(). 2014-02-14 18:30:01 -08:00
glamor_pixmap.c glamor: Drop unused GLAMOR_ACCESS_WO. 2014-03-17 14:30:56 -07:00
glamor_polyfillrect.c glamor: Apply x-indent.sh. 2014-01-27 09:30:47 -08:00
glamor_polylines.c glamor: Apply x-indent.sh. 2014-01-27 09:30:47 -08:00
glamor_polyops.c glamor: Fix some indent damage of putting a ' ' after the '*' for pointers. 2014-01-27 09:30:47 -08:00
glamor_priv.h glamor: Allow nested mapping of pixmaps. 2014-03-17 14:30:56 -07:00
glamor_putimage.c glamor: Drop useless glEnable/glDisable(GL_TEXTURE_2D) calls. 2014-02-14 18:30:01 -08:00
glamor_render.c glamor: Drop stale comment. 2014-03-17 14:30:52 -07:00
glamor_setspans.c glamor: Apply x-indent.sh. 2014-01-27 09:30:47 -08:00
glamor_tile.c glamor: Add a screen argument to drop an ifdef from glamor_set_alu(). 2014-02-14 18:30:01 -08:00
glamor_trapezoid.c glamor: Extract the streamed vertex data code used by Render. 2014-03-10 13:57:21 -07:00
glamor_triangles.c glamor: Apply x-indent.sh. 2014-01-27 09:30:47 -08:00
glamor_utils.h glamor: Fix a spelling mistake in GLAMOR_PIXMAP_FBO_NOT_EXACT_SIZE. 2014-03-10 11:06:27 -07:00
glamor_vbo.c glamor: Use buffer_storage 2014-03-10 13:57:21 -07:00
glamor_window.c glamor: Apply x-indent.sh. 2014-01-27 09:30:47 -08:00
glamor_xv.c xorg: Connect up the glamor XV code, xorg DDX-only for now. 2014-03-05 13:10:20 -08:00
glamor.c glamor: Return the stride/size for glamor_dri3_name_from_pixmap(), too. 2014-03-17 14:30:49 -07:00
glamor.h glamor: Return the stride/size for glamor_dri3_name_from_pixmap(), too. 2014-03-17 14:30:49 -07:00
Makefile.am glamor: Extract the streamed vertex data code used by Render. 2014-03-10 13:57:21 -07:00