Commit Graph

863 Commits

Author SHA1 Message Date
ManoloFLTK
871e7063a2 Windows: restore "checkers" app that was damaged after handling of issue #155. 2021-01-25 18:58:05 +01:00
ManoloFLTK
d1c7caec3b Improve Fl_Graphics_Driver::cache_size() when GUI is scaled.
The change lets this function enlarge the size only when strictly necessary
for image tiling.
2020-12-02 14:39:49 +01:00
ManoloFLTK
67bb631bd9 Scaling for Windows and X11: support rectangular loops. 2020-11-30 18:50:19 +01:00
ManoloFLTK
ff372c86d8 Fix for issue #123 - Windows platform 2020-11-29 09:48:23 +01:00
ManoloFLTK
f5f9043208 Windows: fix undrawn pixels at right and bottom of scaled windows. 2020-11-29 09:15:04 +01:00
ManoloFLTK
d851106f47 Prevent compilation warning about uninitialized variables. 2020-11-27 09:17:33 +01:00
ManoloFLTK
d7985607d6 Fix for issue #123 - X11 platform
As discussed, only the window position becomes rounded to nearest integer value
when a fractional GUI scale factor is applied.
2020-11-25 09:21:44 +01:00
ManoloFLTK
c684505407 Fix for issue #163: Improve Xrender scaling quality 2020-11-24 10:05:36 +01:00
Greg Ercolano
a41d8c0e60 Fix issue #162 2020-11-22 18:18:02 -08:00
ManoloFLTK
aa9e2e888e Fix for issue #159 - continued
Changes here concentrate the fix within static function alpha_blend() and thus
are visible only when drawing transparent images under X11 platform
without Xrender.
2020-11-20 10:33:46 +01:00
ManoloFLTK
aa140973a3 Remove compilation warnings about signed/unsigned comparison. 2020-11-19 16:13:02 +01:00
ManoloFLTK
e52e057cdf Fix for issue #159. 2020-11-19 15:59:48 +01:00
Albrecht Schlosser
5cb72ef065 Fix whitespace and minor formatting issues 2020-11-17 16:11:03 +01:00
ManoloFLTK
c227edef39 Fix for issue #155 - continued
This fix takes care of the Windows platform.
2020-11-13 10:02:43 +01:00
ManoloFLTK
231159e16c Fix for issue #155 - continued
The issue lies in details how floating point scaled coordinates are converted
to integer values and its impact on the drawing of large SVG images.
This commit fixes the X11 platform.
The macOS platform is immune because drawing uses floating point
coordinates.
The Windows platform still needs fixing.
2020-11-12 07:46:12 +01:00
ManoloFLTK
7b6d0a8196 Restore building with --disable-svg 2020-11-10 15:51:54 +01:00
ManoloFLTK
08b36fe4c8 Remove useless typedef declaration. 2020-11-10 15:51:54 +01:00
ManoloFLTK
9bd65d5993 Remove compilation warning that HAVE_DLFCN_H is undefined. 2020-11-10 15:51:54 +01:00
ManoloFLTK
0d594319c1 Add extra argument to Fl_SVG_File_Surface constructor.
This makes processing of the underlying FILE object consistant by classes
Fl_SVG_File_Surface, Fl_EPS_File_Surface and Fl_PostScript_File_Surface.
2020-11-03 18:05:18 +01:00
ManoloFLTK
98a4e49204 Fix possible memory leak in Fl_WinAPI_Screen_Driver::read_win_rectangle_unscaled()
Thanks to "fire-eggs" for spotting it.
Also minor optimisations in Fl_X11_Screen_Driver::read_win_rectangle_unscaled() and
Fl_Cocoa_Screen_Driver::read_win_rectangle_unscaled().

This closes PR #151.
2020-11-02 13:13:53 +01:00
ManoloFLTK
1761523c9e Add Fl_PostScript_File_Device::close_command(Fl_PostScript_Close_Command cmd)
Also expand Doxygen doc of class Fl_Printer for the X11 platform.
2020-11-01 09:26:40 +01:00
ManoloFLTK
b540c65081 X11+GTK: remove warning when native file chooser runs on Wayland 2020-10-30 17:00:30 +01:00
ManoloFLTK
70da3a34b0 Fix PostScript driver for fl_draw_image(buf,X,Y,W,H,D,L) with negative D or L 2020-10-29 15:37:20 +01:00
ManoloFLTK
56318163e3 Cairo-based PostScript: fix image tiling 2020-10-29 10:32:17 +01:00
ManoloFLTK
8accc6e840
Pango ps (#148)
Use cairo-PostScript to output PostScript when pango is available.

This allows to draw in vectorial form any script.
Before, only the Latin script could be drawn to PostScript in vectorial form.
2020-10-28 17:19:05 +01:00
ManoloFLTK
966e15fe37 Simpler implementation of Fl_Quartz_Image_Surface_Driver::image() 2020-10-14 09:56:53 +02:00
ManoloFLTK
0d8385a652 Simpler macOS implementation of capture of window titlebars. 2020-10-12 21:05:38 +02:00
ManoloFLTK
5830226aab Change procedure to capture window titlebar for macOS ≥ 10.15
That is necessary to support macOS Big Sur because previous procedure
did not work for tabbed windows. The new procedure is potentially
usable from macOS 10.5, but tested at this stage for macOS ≥ 10.15.
2020-10-11 10:43:01 +02:00
ManoloFLTK
1a841795d1 Fl_Xlib_Font_Descriptor does not need char glok[64] when USE_XFT is on 2020-10-08 11:57:34 +02:00
ManoloFLTK
0c55cd1aca Create Fl_X11_System_Driver::dlopen_or_dlsym() for run-time addresses.
The intent is to gather in a single place of the X11 platform source code
all variable elements when using dlopen() and dlsym() system functions
(e.g., .so vs .dylib extension name, is RTLD_DEFAULT available, locations
to be sought).
Member function Fl_System_Driver::load() is created only to support
Fl_Plugin_Manager::load().
2020-10-04 08:21:07 +02:00
ManoloFLTK
46598229a9 Have Fl_X11_System_Driver::newUUID() use uuid_generate() if available at run-time.
The code falls back to the ad-hoc method if uuid_generate() isn't available.
2020-10-02 12:18:18 +02:00
ManoloFLTK
7f2e206279 Fix possible memory allocation error. 2020-09-30 14:41:19 +02:00
Greg Ercolano
a20c2103ec Solves issue #143. 2020-09-23 22:42:12 -07:00
ManoloFLTK
a4a5720658 macOS: minor improvement of capture of window titlebar. 2020-09-21 18:20:07 +02:00
ManoloFLTK
8ba68dd275 macOS: increase resolution when drawing window titlebars to PostScript 2020-09-19 15:26:02 +02:00
Albrecht Schlosser
91e8a0282c Remove useless 'if (...)'
- dasharray_ can never be NULL unless if memory allocation failed
  previously
- if dasharray_ was NULL, the previous strcmp() would have crashed
  anyway (but it can't be NULL, see above)
2020-08-05 14:34:45 +02:00
ManoloFLTK
5b1c7249a5 Remove memory leak. 2020-08-04 11:06:59 +02:00
ManoloFLTK
81941c5597 Remove useless Fl_GDI_Graphics_Driver::reset_spot() 2020-08-03 17:32:09 +02:00
Greg Ercolano
b409588012 Remove unneeded strdup from example, fold tabs 2020-08-01 14:19:40 -07:00
Greg Ercolano
2141c63628 Implement + deploy fl_strdup() 2020-08-01 14:19:40 -07:00
Greg Ercolano
7514a73ba7 Solves issue #117, memcmp -> strncmp
Closes #117.
2020-07-31 07:00:46 -07:00
ManoloFLTK
889acc7d74 Fix use of an SVG image in Fl_Tiled_Image when display is rescaled. 2020-07-30 17:41:35 +02:00
ManoloFLTK
41a6ade72b Fix for issue #119. Drawing artefacts for SVG images without XRender.
Xlib: Drawing SVG images in scaled mode without XRender has drawing artefacts.
2020-07-28 17:57:39 +02:00
Greg Ercolano
0693c70f57 First pass at fixing issue 99
A lot of code touched because low level functions needed to pass up
error messages reliably, and this had to propagate up the entire
driver hierarchy.

Tested OK *in English* on:
     > Linux
     > OSX 10.10.x
     > Windows VS2017
     > Windows mingw64
I have no way to test on Android, but it might work.

TODO: Needs testing in other languages to verify proper UTF8 error messages,
      esp. with Windows VS, due to complexities with FormatMessage() -- see get_ms_errmsg()
2020-07-14 12:52:56 +02:00
Albrecht Schlosser
f09e17c3c5 Remove $Id$ tags, update URL's, and more
- remove obsolete svn '$Id$' tags from all source files
- update .fl files and generated files accordingly
- replace 'http://www.fltk.org' URL's with 'https://...'
- replace bug report URL 'str.php' with 'bugs.php'
- remove trailing whitespace
- fix other whitespace errors flagged by Git
- add and/or fix missing or wrong standard headers
- convert tabs to spaces in all source files

The only relevant code changes are in the fluid/ folder where
some .fl files and other source files were used to generate
the '$Id' headers and footers.
2020-07-06 20:28:20 +02:00
ManoloFLTK
26e6c3f930 Add classes Fl_SVG_File_Surface and Fl_EPS_File_Surface to draw to SVG and EPS.
Test programs device and pixmap_browser use these new classes.
Class Fl_SVG_File_Surface can be optionally made non functional using the
--disable-svg configure option or turning off OPTION_USE_SVG in CMake.
Class Fl_EPS_File_Surface can be optionally made non functional using the
--disable-print configure option or turning off OPTION_PRINT_SUPPORT in CMake.
2020-06-27 09:56:00 +02:00
ManoloFLTK
46b89686df Allow using an Fl_SVG_Image object as window icon.
Fix for issue #90: Setting an svg image as a window icon causes a segfault.
2020-06-15 19:05:47 +02:00
ManoloFLTK
7f7e0e4ea1 Replace Fl_Window_Driver::is_a_rescale() by Fl_Window::is_a_rescale()
so it can be called by any user code.
2020-05-08 17:08:33 +02:00
ManoloFLTK
f386bd2cb7 Support case when window is fullscreen - continued 2020-05-04 11:33:43 +02:00
ManoloFLTK
6d24a355f0 Support case when captured window is fullscreen: no titlebar. 2020-05-04 11:33:43 +02:00