summaryrefslogtreecommitdiff
path: root/src/drivers
AgeCommit message (Collapse)Author
2022-09-27Simpler code to support FLTK widgets in macOS OpenGL 3 windows.ManoloFLTK
Also, the application-level code to add widgets to a GL3 window becomes platform-independent.
2022-09-26Replace all calls to sprintf() by calls to snprintf().ManoloFLTK
2022-09-25Add cross-platform support for adding widgets to an OpenGL3-based Fl_Gl_Window.ManoloFLTK
Under non-macOS platforms, the key is to call glUseProgram(0); after having used OpenGL 3 which allows to then use OpenGL 1 and draw FLTK widgets over the OpenGL3 scene. Under macOS, this is impossible because macOS GL3 contexts are not compatible with GL1. The solution implemented here is to create an additional Fl_Gl_Window placed above and sized as the GL3-based window, to give it a non opaque, GL1-based context, and to put the FLTK widgets in that additional window.
2022-09-23GL3 support under X11: ask for compatibility profile if possible.ManoloFLTK
2022-09-22Wayland: fix window closing with titlelbar close button.ManoloFLTK
2022-09-15Make Fl::set_color(r,g,b,a) effective under Wayland and macOS.ManoloFLTK
2022-09-14Improve virtual void* Fl_Gl_Window_Driver::GetProcAddress(procName)ManoloFLTK
2022-09-13Remove forgotten debug code.ManoloFLTK
2022-09-11Fix fl_read_image() under hybrid Wayland/X11 platform.ManoloFLTK
Function fl_read_image() obliges to keep a minimal use of global variable fl_window also under the Wayland platform, even if its type (Window) makes little sense for the hybrid library because it has its X11 value (given by X11/X.h) which is not meaningful for the Wayland leg of the hybrid platform. Virtual member function Fl_Surface_Device::as_image_surface() becomes useless.
2022-09-11Add needed variable for Wayland-only platform.ManoloFLTK
2022-09-09New OPTION_WAYLAND_ONLY for CMake to build pure Wayland platform.ManoloFLTK
2022-09-09Wayland: support going from borderless to bordered window.ManoloFLTK
2022-09-09Wayland: fix handling of fast calls to Fl_Window::flush().ManoloFLTK
Also fix scaling of borderless windows.
2022-09-08Wayland: remove memory leak from missing wl_callback_destroy() call.ManoloFLTK
This hopefully corresponds to the memory leak mentioned in fltk.general named "FLTK and Wayland".
2022-09-08Add necessary virtual qualifier to ~Fl_Font_Descriptor() and derived.ManoloFLTK
2022-09-07Improve support of child windows that may leak outside their parent window.ManoloFLTK
1) add Wayland code that prevent subwindows from leaking outside their parent. This does not cover GL subwindows. 2) add macOS code that prevent GL subwindows from leaking outside their parent. This fixes issue #494 for the macOS platform. N.B.: Wayland GL subwindows are not prevented from leaking because no solution that would not require any change in client applications was found. Code that would cover Wayland GL subwindows but would require client applications to always use the FL_ALPHA flag is included in this commit in commented out form.
2022-09-06Wayland: fix memory leak on FL_KEYUP eventsAlbrecht Schlosser
The old code would allocate memory on FL_KEYDOWN and FL_KEYUP events and never free the latter. The fix is to allocate memory only on FL_KEYDOWN events which will be free'd later as intended. Also fix two unrelated whitespace errors.
2022-09-03Fix for issue #493ManoloFLTK
2022-09-01Simplify Fl_Window_Driver::screen_num() member functions.ManoloFLTK
2022-09-01Restore building with --disable-xftManoloFLTK
2022-08-31Wayland platform: remove redirection of stderr.ManoloFLTK
2022-08-31Hybrid Wayland/X11: remove setenv() call from ↵ManoloFLTK
Fl_Wayland_System_Driver::disable_wayland().
2022-08-30Hybrid Wayland/X11 platform: improve control of chosen backend.ManoloFLTK
2022-08-30Attempt to improve fl_disable_wayland().ManoloFLTK
2022-08-30Add FL_EXPORT to Fl_Wayland_Screen_Driver::wl_display member variable.ManoloFLTK
2022-08-30Wayland: Fix Fl_Gl_Window_Driver::newGlWindowDriver() for shared libsManoloFLTK
2022-08-30Set Fl_Graphics_Driver::set_color(Fl_Color, unsigned) used by macOS, Wayland ↵ManoloFLTK
and display-cairo.
2022-08-29Improve selection of Wayland or X11 backendAlbrecht Schlosser
Calling fl_disable_wayland() at runtime must have highest priority before environment variables are considered.
2022-08-29Hybrid Wayland/X11 : more accurate writing of fl_wl_display().ManoloFLTK
2022-08-29Wayland/X11 hybrid: fix crash of test program demo.ManoloFLTK
2022-08-29Make hybrid Wayland/X11 platform.ManoloFLTK
2022-08-25Remove unneeded FL_EXPORT declaration.ManoloFLTK
2022-08-25Wayland: reduce the number of platform-specific FL_EXPORT directives.ManoloFLTK
2022-08-24Add FL_EXPORT directives to support building shared libs with -no-undefinedManoloFLTK
2022-08-23Wayland: Fix obscure problem when closing file dialog under recent OS versions.ManoloFLTK
The problem is that the app sometimes stops after closing a file dialog window. It results in fact from a bug in function draw_title_bar of libdecor-gtk.c that erroneously calls libdecor_frame_set_max_content_size(). This bug is being proposed to be fixed by a MR to libdecor. But moving the libdecor_frame_set_min/max_content_size() calls after the capability changes hides the bug, and the problem with file dialog doesn't show.
2022-08-20Add static Fl_Wayland_Window_Driver::gl_plugin() member function.ManoloFLTK
2022-08-20Remove FL_EXPORT qualifier from platform-specific class declarations.ManoloFLTK
2022-08-18Add a few missing virtual members to Fl_Cairo_Graphics_Driver.ManoloFLTK
2022-08-18Simplify class Fl_OpenGL_Display_Device.ManoloFLTK
2022-08-18Remove un-necessary Fl_Wayland_Gl_Window_Driver::capture_gl_rectangle().ManoloFLTK
2022-08-17Simplify Fl_Wayland_Gl_Window_Driver::make_current_before() member function.ManoloFLTK
2022-08-17Wayland platform: improve Fl_Gl_Window resize operations.ManoloFLTK
2022-08-15Remove useless Fl_Wayland_Window_Driver::show_with_args_begin/end().ManoloFLTK
2022-08-15Fix Fl_Wayland_Window_Driver::decoration_sizes().ManoloFLTK
2022-08-13Replace call to CreateFont() by call to CreateFontW().ManoloFLTK
2022-08-12Add virtual Fl_Cairo_Graphics_Driver::cache_size() member function.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-08-07Wayland platform: fix declaration of local variable 'scale'.ManoloFLTK