summaryrefslogtreecommitdiff
path: root/src/drivers/Xlib
AgeCommit message (Collapse)Author
2023-06-06 Fix "Fl::get_font_name() with Pango is inconsistent"-cont'd (#732)ManoloFLTK
2023-06-06 Fix "Fl::get_font_name() with Pango is inconsistent"-cont'd (#732)ManoloFLTK
2023-06-06 Fix "Fl::get_font_name() with Pango is inconsistent"-cont'd (#732)ManoloFLTK
2023-06-05 Fix "Fl::get_font_name() with Pango is inconsistent"-cont'd (#732)ManoloFLTK
2023-04-23Replace internal fl_create_offscreen() calls by new Fl_Image_SurfaceManoloFLTK
2023-04-14Remove duplication of Pango standard font namesManoloFLTK
And move each array of standard font names to appropriate font-related source file
2023-02-14Rename class Fl_Display_Cairo_Graphics_Driver to Fl_X11_Cairo_Graphics_DriverManoloFLTK
2023-01-26Fixing FLUID file corruption from issue #653 (#662)Matthias Melcher
Removing all globals in file writer (#653 ) Fix some static analyser complaints Valgrind: handle width==0 in GfxDrivers on Wayland and X11 Don't use `Fl_Input_::static_value`, it accesses previous buffer that may be deleted Project file write encapsulated, removing globals Encapsulating project file reader, removing states in glbals Project i/o increased source code readability
2023-01-13Fix set_fonts() in Xlib/xft and Cairo Graphics_DriverAlbrecht Schlosser
src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx: - fix font_name_process() out of bounds memory access - unify/align font_name_process() code (see also Xlib/xft) - fix font name string allocation src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx - unify/align font_name_process() code (see also Cairo_Graphics) - fix font name string allocation Todo: move common code to Fl_Graphics_Driver or another common file.
2023-01-08 Fix "Xrender blurs adjacent images with bilinear scaling" (#633)ManoloFLTK
Many thanks to @wcout for providing this fix. Xrender now draws images in the same way when tiling images or not when FL_RGB_SCALING_BILINEAR is on. This allows to remove static bool Fl_Tiled_Image::drawing_tiled_image() which becomes unused.
2023-01-01Add a missing FL_OVERRIDE flagAlbrecht Schlosser
2022-12-30Use `FL_OVERRIDE` for all overridden virtual methods (#611)Matthias Melcher
FL_OVERRIDE is defined as `override` for C++11 and higher FL_OVERRIDE is defined as `override` for VisualC 2015 and newer Don't interfere with Fl_Widget::override()
2022-12-30Fix misleading indentation (warning: [-Wmisleading-indentation])Albrecht Schlosser
2022-11-29Fix for issue [Cairo]: Arrows have a "gap" (#561)ManoloFLTK
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-25Make Fl_XXX_Graphics_Driver::create_bitmask() a static member functionManoloFLTK
2022-09-26Replace all calls to sprintf() by calls to snprintf().ManoloFLTK
2022-09-08Add necessary virtual qualifier to ~Fl_Font_Descriptor() and derived.ManoloFLTK
2022-08-29Make hybrid Wayland/X11 platform.ManoloFLTK
2022-08-25Remove unneeded FL_EXPORT declaration.ManoloFLTK
2022-08-20Remove FL_EXPORT qualifier from platform-specific class declarations.ManoloFLTK
2022-08-10Fix Fl_Xlib_Graphics_Driver for drawing tiled images.ManoloFLTK
Conflicting demands arise in the implementation of class Fl_Xlib_Graphics_Driver for drawing images with the XRender library : 1) Issue #163 leads to use a bilinear filter to draw-and-scale images. 2) This tends to blur the edges of drawn areas which is bad for tiled images (that is because the edges get alpha values, even for an opaque source image). This commit resolves the conflict adding a means to detect whether the library is busy drawing a tiled image. If so, the bilinear filter is not applied, drawn areas don't have blurred edges, resulting in a nice tiling. With this commit, these test apps perform correctly: - tiled_image is correct at all scaling factor values also when modified to use a depth-3 or a depth-4 Fl_RGB_Image as tile; - unittests - Drawing Images is correct at all scaling factor values; - pixmap_browser scales correctly up and down JPEG and PNG images.
2022-08-09Fix Fl_Xlib_Graphics_Driver for tiled-depth 3 images.ManoloFLTK
Modifying test/tiled_image to make it use a depth-3 image for tiling (rather than an Fl_Pixmap) shows the filter does require to use PictOpOver as the render op in the XRenderComposite call.
2022-08-09Fix Fl_Xlib_Graphics_Driver for RGB image drawing under XQuartz.ManoloFLTK
2022-07-26Remove redundant Fl_Xlib_Graphics_Driver::scale_bitmap_for_PostScript() ↵ManoloFLTK
under USE_XFT=1.
2022-07-20Change prototype of virtual Fl_Graphics_Driver::pango_font_description().ManoloFLTK
2022-06-19Move input method support to Fl_Screen_Driver from Fl_Graphics_DriverManoloFLTK
2022-03-24Remove platform-dependent type Fl_Bitmask (not in documented public API).ManoloFLTK
2022-03-21Avoid using same name (p) for distinct members of derived classes.ManoloFLTK
2022-03-21Fix for issue #416: Fl_Xlib_Graphics_Driver_font_xft.cxx has a libasan error.ManoloFLTK
2022-03-14Move initialisation of X11 and Wayland built-in font names to ↵ManoloFLTK
fl_???_platform_init.cxx
2022-03-13Separate platform init functions from platform-specific driver filesManoloFLTK
2022-01-16Rename FL/fl_string.h to FL/fl_string_functions.hAlbrecht Schlosser
This is part 1 of the final fix for a previous name clash on case insensitive file systems (fl_string.h vs. Fl_String.H).
2022-01-07Add virtual void Fl_Graphics_Driver::set_status() and implement for X11 ↵ManoloFLTK
platform.
2022-01-02Text input method for X11: fix for case when text widget is inside subwindow.ManoloFLTK
2021-12-12X11 platform: account for GUI scaling in location of input method aux window.ManoloFLTK
2021-11-26 Fix for issue #254: remove hardware overlay support - cont'd.ManoloFLTK
2021-11-26Fix for issue #254: remove hardware overlay support .ManoloFLTK
2021-11-25X11+XRender platform: more accurate drawing of RGB images when GUI is scaled.ManoloFLTK
RGB images are now drawn to a size that exactly fit discretised rectangles when non integral GUI scaling values are used.
2021-11-25Fix X11 platform bug when drawing transparent RGB image without XRender.ManoloFLTK
The bug would appear with test/device and when scaling up to 133% or above: the background of the Porsche pixmap would be truncated. The bug requires to set OPTION_XRENDERER=0 to appear.
2021-10-27Fix focus box drawing on X11 (partial fix for issue #156)Albrecht Schlosser
This fixes focus box drawing on X11 for some broken graphics drivers with line width zero as discussed on issue #156 titled "Incorrect rendering on Alpine Linux". This title is not entirely correct. The issue has been observed on other Linux distros as well if the "modesetting" driver is in effect. This does not fix rectangle drawing (missing pixels) in general which is obviously caused by a similar or the same driver issue.
2021-10-27Fix indenting, whitespace errors and dependenciesAlbrecht Schlosser
(no code changes)
2021-09-12Fix malloc/delete mismatch (X11 only)Albrecht Schlosser
2021-05-28New virtual member function Fl_Graphics_Driver::colored_rectf().ManoloFLTK
2021-05-26X11: fix fl_clip_box() coordinates > 16-bit (STR 3134)Albrecht Schlosser
Pre-clip coordinates to 16-bit range before using X11 clipping functions because X11 supports only 16-bit int's.
2021-03-26Remove X11-specific code from platform-independent Fl_PostScript.cxxManoloFLTK
2021-03-21Remove unnecessary system includes from public headersAlbrecht Schlosser
Add includes of system headers in the implementation files where necessary.
2021-03-13Fast pango (#201)ManoloFLTK
* Cache single unicode character widths under Xft+Pango
2021-03-11Unification of scaled coordinate calculations in class ↵ManoloFLTK
Fl_Scalable_Graphics_Driver Most coordinate calculations are done with the new inline function int Fl_Scalable_Graphics_Driver::floor(int coord) that is used by both the Windows and X11 platforms.
2021-03-02X11 platform: Accurately control RGB image drawing with GUI scaling.ManoloFLTK
2021-03-01Remove duplicated code between derived classes of Fl_Graphics_Driver - cont'd.ManoloFLTK