fltk/src/drivers/Xlib
ManoloFLTK 00884f28e2 Fix for issue [Cairo]: Arrows have a "gap" (#561)
The problem to fix is that the arrow drawn by draw_arrow1() in src/fl_symbols.cxx
displays a faint clear line between the stem and head of the arrow with the Cairo
graphics driver.

This occurs because draw_arrow1() draws the arrow in 2 steps (a rectangle +
a triangle) and the Cairo driver is configured to use antialiasing when filling
polygons. The antialiasing produces the faint line between stem and head.

Why does draw_arrow1() draw a rectangle + a triangle rather than a
7-vertex polygon? That's because the X11 graphics driver fails with its polygon-
drawing function when the polygon is also rotated: the polygon is drawn
empty.

We want to keep using antialiasing under Cairo for polygons because
the result is better with non horizontal/vertical polygon edges.

This implementation changes function draw_arrow1() which draws
the arrow as a 7-vertex filled polygon except when the graphics driver
returns false for its virtual member function can_fill_non_convex_polygon().
In that situation, draw_arrow1() draws, as before, a rectangle + a triangle.
The new, virtual member function can_fill_non_convex_polygon() returns
true except for the X11 graphics driver. Therefore, draw_arrow1() is effectively
unchanged under the X11 driver.
2022-11-29 12:28:31 +01:00
..
Fl_Font.H Add necessary virtual qualifier to ~Fl_Font_Descriptor() and derived. 2022-09-08 16:04:09 +02:00
Fl_Xlib_Copy_Surface_Driver.cxx Make hybrid Wayland/X11 platform. 2022-08-29 12:15:32 +02:00
Fl_Xlib_Copy_Surface_Driver.H Make hybrid Wayland/X11 platform. 2022-08-29 12:15:32 +02:00
Fl_Xlib_Graphics_Driver_arci.cxx Unification of scaled coordinate calculations in class Fl_Scalable_Graphics_Driver 2021-03-11 16:05:32 +01:00
Fl_Xlib_Graphics_Driver_color.cxx Fix for issue #254: remove hardware overlay support . 2021-11-26 15:16:15 +01:00
Fl_Xlib_Graphics_Driver_font_x.cxx Replace all calls to sprintf() by calls to snprintf(). 2022-09-26 16:12:18 +02:00
Fl_Xlib_Graphics_Driver_font_xft.cxx Replace all calls to sprintf() by calls to snprintf(). 2022-09-26 16:12:18 +02:00
Fl_Xlib_Graphics_Driver_image.cxx Make hybrid Wayland/X11 platform. 2022-08-29 12:15:32 +02:00
Fl_Xlib_Graphics_Driver_line_style.cxx Fix indenting, whitespace errors and dependencies 2021-10-27 20:52:08 +02:00
Fl_Xlib_Graphics_Driver_rect.cxx Make hybrid Wayland/X11 platform. 2022-08-29 12:15:32 +02:00
Fl_Xlib_Graphics_Driver_vertex.cxx Fix for issue [Cairo]: Arrows have a "gap" (#561) 2022-11-29 12:28:31 +01:00
Fl_Xlib_Graphics_Driver.cxx Make hybrid Wayland/X11 platform. 2022-08-29 12:15:32 +02:00
Fl_Xlib_Graphics_Driver.H Fix for issue [Cairo]: Arrows have a "gap" (#561) 2022-11-29 12:28:31 +01:00
Fl_Xlib_Image_Surface_Driver.cxx Make hybrid Wayland/X11 platform. 2022-08-29 12:15:32 +02:00
Fl_Xlib_Image_Surface_Driver.H Make hybrid Wayland/X11 platform. 2022-08-29 12:15:32 +02:00