mirror of
https://github.com/X11Libre/xserver.git
synced 2026-11-03 03:24:39 +00:00
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>
This commit is contained in:
parent
dc9fa9080a
commit
d18f5801c9
10 changed files with 496 additions and 20 deletions
|
|
@ -30,6 +30,7 @@ typedef enum {
|
|||
glamor_program_location_fill = 4,
|
||||
glamor_program_location_font = 8,
|
||||
glamor_program_location_bitplane = 16,
|
||||
glamor_program_location_dash = 32,
|
||||
} glamor_program_location;
|
||||
|
||||
typedef enum {
|
||||
|
|
@ -64,6 +65,8 @@ struct _glamor_program {
|
|||
GLint font_uniform;
|
||||
GLint bitplane_uniform;
|
||||
GLint bitmul_uniform;
|
||||
GLint dash_uniform;
|
||||
GLint dash_length_uniform;
|
||||
glamor_program_location locations;
|
||||
glamor_program_flag flags;
|
||||
glamor_use prim_use;
|
||||
|
|
|
|||
Loading…
Reference in a new issue