xserver/glamor
Keith Packard d18f5801c9 glamor: Add glamor_program based 0-width dashed lines
This makes sure the pixelization for dashed lines matches non-dashed
lines, while also speeding them up.

v2: Switch to glamor_make_current

v3: Create dash pattern pixmap without GLAMOR_CREATE_FBO_NO_FBO

v4: Adopt suggestions from Eric's review:

  - Drops power-of-two alignment of our line vertex data, simplifying
    the code.

  - Stops reading from the VBO.  While on keithp's and my machines the
    VBO is mapped cached, on many implementations it will be mapped WC,
    making those reads extremely expensive.

  - Style fixes (line wrapping, spaces around operators).

v5: Adopt suggestions from Markus' review:

  - Use max when computing zero-width dashed line length.

    Don't open code max here.

  - Embed CoordModePrevious into VBO writing for dashed lines

    Instead of pre-computing the coord mode previous results, just
    embed this in the loop which fills the vertex buffer. Saves
    re-writing the request buffer, and shortens the code a bit

v6: Export glamor_destroy_gc for UXA

    UXA needs to call glamor_destroy_gc from its GCFuncs, so export
    it.

Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
2014-06-15 22:02:41 +01:00
..
Makefile.am glamor: Add glamor_program based 0-width dashed lines 2014-06-15 22:02:41 +01:00
glamor.c glamor: Add glamor_program based 0-width dashed lines 2014-06-15 22:02:41 +01:00
glamor.h glamor: Add glamor_program based 0-width dashed lines 2014-06-15 22:02:41 +01:00
glamor_addtraps.c glamor: Rely on nested mappings to handle src==dst and !prepare bugs. 2014-03-17 14:30:56 -07:00
glamor_compositerects.c glamor: Remove an extra copy of RegionNil(). 2014-01-27 09:30:47 -08:00
glamor_context.h glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_copy.c glamor: Add glamor_program based copy acceleration 2014-06-15 22:02:41 +01:00
glamor_core.c glamor: Add glamor_program based 0-width dashed lines 2014-06-15 22:02:41 +01:00
glamor_dash.c glamor: Add glamor_program based 0-width dashed lines 2014-06-15 22:02:41 +01:00
glamor_debug.h glamor: Apply x-indent.sh. 2014-01-27 09:30:47 -08:00
glamor_egl.c glamor: Explain the weird EGL_NO_CONTEXT code. 2014-04-23 10:32:30 -07:00
glamor_egl_stubs.c glamor: Move glamor_egl_screen_init() prototype to glamor.h 2014-04-01 10:31:09 -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: Fallback to system memory when fail to allocate one big fbo. 2014-04-23 10:41:19 -07:00
glamor_fill.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_font.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_font.h glamor: Add glamor_program based poly_text and image_text 2014-04-03 13:07:52 -07:00
glamor_glx.c glamor: Do the same MakeCurrent(None) for GLX as we do for EGL. 2014-04-23 10:32:32 -07:00
glamor_glyphblt.c glamor: Use glamor_program for glamor_push_pixels 2014-06-15 22:02:41 +01:00
glamor_glyphs.c glamor: Add glamor_program based copy acceleration 2014-06-15 22:02:41 +01:00
glamor_gradient.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_image.c glamor: Add glamor_transfer based glamor_get_image and glamor_put_image 2014-04-23 10:36:18 -07:00
glamor_largepixmap.c glamor: Add glamor_program based copy acceleration 2014-06-15 22:02:41 +01:00
glamor_lines.c glamor: Add glamor_program based 0-width dashed lines 2014-06-15 22:02:41 +01:00
glamor_picture.c glamor: Replace fallback preparation code 2014-06-15 22:02:40 +01:00
glamor_pixmap.c glamor: Move a make_current before the first GL call entrypoint. 2014-04-23 10:32:34 -07:00
glamor_points.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_prepare.c glamor: Replace fallback preparation code 2014-06-15 22:02:40 +01:00
glamor_prepare.h glamor: Replace fallback preparation code 2014-06-15 22:02:40 +01:00
glamor_priv.h glamor: Add glamor_program based 0-width dashed lines 2014-06-15 22:02:41 +01:00
glamor_program.c glamor: Add glamor_program based 0-width dashed lines 2014-06-15 22:02:41 +01:00
glamor_program.h glamor: Add glamor_program based 0-width dashed lines 2014-06-15 22:02:41 +01:00
glamor_rects.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_render.c glamor: Add glamor_program based copy acceleration 2014-06-15 22:02:41 +01:00
glamor_segs.c glamor: Add glamor_program based 0-width dashed lines 2014-06-15 22:02:41 +01:00
glamor_spans.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_text.c glamor: Work around libXfont when it fails to use defaultChar 2014-05-05 13:18:22 -07:00
glamor_tile.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_transfer.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_transfer.h glamor: Add simple upload/download functions in glamor_transfer 2014-04-03 13:07:51 -07:00
glamor_transform.c glamor: Add infrastructure for generating shaders on the fly 2014-03-26 12:58:40 -07:00
glamor_transform.h glamor: Add infrastructure for generating shaders on the fly 2014-03-26 12:58:40 -07:00
glamor_trapezoid.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_triangles.c glamor: Rely on nested mappings to handle src==dst and !prepare bugs. 2014-03-17 14:30:56 -07:00
glamor_utils.h glamor: Replace fallback preparation code 2014-06-15 22:02:40 +01:00
glamor_vbo.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_window.c glamor: Apply x-indent.sh. 2014-01-27 09:30:47 -08:00
glamor_xv.c glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00