Commit Graph

29 Commits

Author SHA1 Message Date
Manolo Gouy
dcc82d8926 STR#3450: Draw text with OpenGL using textures on all platforms.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12650 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-07 15:34:44 +00:00
Albrecht Schlosser
42d8aba117 Replace FL/x.H with FL/platform.H - step 2 (STR #3435).
This second step replaces FL/x.H with FL/platform.H in all source files.
Dependencies have been adjusted as well.

This commit completes the replacement of FL/x.H with FL/platform.H.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12641 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-01-31 21:17:17 +00:00
Manolo Gouy
f24ee501b9 STR#3320 continued: make sure there's no undrawn space between nested rectangles and images.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12595 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-12-18 12:13:33 +00:00
Manolo Gouy
3f9f4debbb STR#3444: Add MacOS support for application rescaling (not quite complete)
With this, most MacOS FLTK app can be scaled with command/+/-/0/ keystrokes.
A scaling problem remains, visible in test/cube, where the "Test" string is not positioned correctly.

GLUT apps can also be scaled (across platforms).

SVG images are re-rasterized after app scaling for optimal drawing.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12594 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-12-18 08:52:55 +00:00
Manolo Gouy
86e60e9068 X11 and WIN32: slightly change Fl_XXX_Graphics_Driver::cache(Fl_Pixmap*) to use the Fl_Image_Surface object.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12399 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-08-25 17:42:46 +00:00
Manolo Gouy
c7405a22a8 X11 platform: cleaner implementation of changing the active drawing surface and maintaining clip regions.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12396 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-08-24 12:40:29 +00:00
Manolo Gouy
c2d5cf4067 Simplify using Fl_XXX_Graphics_Driver::copy_offscreen() instead of Fl_Scalable_Graphics_Driver::copy_offscreen_unscaled()
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12395 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-08-20 20:18:15 +00:00
Albrecht Schlosser
4198caa780 Make 'driver' header include guards more standard.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12380 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-08-14 15:44:41 +00:00
Manolo Gouy
93a99431ed Move line_width_ protected member variable from Fl_Xlib_Graphics_Driver to Fl_Scalable_Graphics_Driver
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12269 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-21 16:08:32 +00:00
Manolo Gouy
0489d79085 Fix warnings: 'Fl_Xlib_Graphics_Driver::scale' hides overloaded virtual function [-Woverloaded-virtual]
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12242 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-05-22 13:59:22 +00:00
Manolo Gouy
f48750b0f4 Introduce HiDPI + rescaling support for the X11 platform (+ partial support for WIN32)
Corresponds to STR #3320
1) HiDPI support consists in detecting the adequate scaling factor for the screen on which
FLTK maps a window, and scaling all FLTK units by this factor. FLTK tries to detect the correct
value of this factor at startup (see more details below). Environment variable
FLTK_SCALING_FACTOR can also be used to set this value.
2) Rescaling support consists in changing the scaling factor of all FLTK windows
in reply to ctrl/+/-/0/ keystrokes.

More details for the various platforms :

- X11: Support is very advanced. Some details need still to be improved.
Automatic detection of the correct starting value of the scaling factor works well
with the gnome desktop. The present code contains no support for this on
other desktops.  FLTK_SCALING_FACTOR provides a workaround.

-WIN32: Support is incomplete at this point, although many test
applications have partial or complete HiDPI and scaling support.
The current value of the system's scaling factor is correctly detected
at application startup. Apps respond to changes of this value in real time.
Support needs to define the FLTK_HIDPI_SUPPORT preprocessor variable
at compile time. This way, standard builds produce a code with the
default WIN32 HiDPI support, that is, where all graphics goes to an internal
buffer that gets enlarged by the system and then mapped to the HiDPI
display. To experiment with (or develop) the new HiDPI support requires
a modified build procedure in which  FLTK_HIDPI_SUPPORT is defined
at compile time. When the support will be complete, the requirement for the
definition of this preprocessor variable will be removed. The present commit
contains support for a single scaling factor. Eventually, per-screen scaling
factors should be implemented, as done for X11.

- MacOS: this commit does not give new HiDPI for this platform.
Eventually, window rescaling in reply to command/+/-/0/ is desirable.
Per-screen scaling factor makes no sense on this platform because
the OS itself takes care of the difference between the resolutions of
traditional and retina displays.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12239 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-05-17 11:54:18 +00:00
Manolo Gouy
b2afa612bf Create Fl_Xlib_Graphics_Driver::scale_and_render_pixmap() to draw depth-4 or scaled RGB images using Xrender.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12210 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-03-17 20:16:54 +00:00
Manolo Gouy
367e567b7b Remove class Fl_Translated_Xlib_Graphics_Driver and move its processing to Fl_Xlib_Graphics_Driver.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12205 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-03-17 16:33:14 +00:00
Manolo Gouy
bbbf91a4b5 Add scaled image drawing to the X11 platform using Xrender.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12200 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-03-16 21:26:12 +00:00
Manolo Gouy
461750c38e X11 platform: Add optional use of the pango library to draw text, gaining the possibility to draw text in any script supported by Unicode.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12153 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-12-21 15:05:02 +00:00
Manolo Gouy
2baeda448b Replace global fl_line_width_ used only by X11 platform by Fl_Xlib_Graphics_Driver::line_width_
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12114 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-11-16 19:56:22 +00:00
Manolo Gouy
0250b4af12 Remove Fl_Xlib_Graphics_Driver::global_gc() because identical to Fl_Graphics_Driver::global_gc()
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@12019 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-10-07 06:12:33 +00:00
Manolo Gouy
0250c5a98a Move font-related member functions from Fl_Screen_Driver to Fl_Graphics_Driver.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11968 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-09-23 13:56:07 +00:00
Manolo Gouy
c34255f8b9 Remove code requiring config.h from public header FL/x.H
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11937 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-09-12 15:48:09 +00:00
Matthias Melcher
cdf85352c4 virtualized some Region calls.
There is a deeper issue here: regions should be handled by the graphics driver that is associated with the Fl_Window of this widget... .

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11643 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-17 15:36:23 +00:00
Matthias Melcher
c9d3eabf4e virtualized Fl::set_color and free_color.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11642 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-17 15:01:20 +00:00
Matthias Melcher
9ae4a99081 virtualized Fl_Graphics_Driver::global_gc(), a function that should probably not exeist.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11641 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-17 14:45:25 +00:00
Matthias Melcher
cc57af841a virtualizes fl_set_spot and fl_reset_spot
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11640 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-17 14:22:02 +00:00
Manolo Gouy
5adda33f96 Finish removing platform-dependent code from Fl_PostScript.cxx
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11477 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-30 17:09:15 +00:00
Manolo Gouy
730f2d12b2 Continue removing platform-dependent code from Fl_PostScript.cxx
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11476 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-30 16:27:41 +00:00
Manolo Gouy
915d6c643a Isolate the definition of the 3 public, OS-dependent types (Fl_Offscreen, Fl_Region, Fl_Bitmask).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11432 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-26 14:36:11 +00:00
Manolo Gouy
270b437500 Rewrite Fl_Window::hide() under the driver model.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11402 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-23 07:08:17 +00:00
Manolo Gouy
9c77129a28 Allow running fluid -c without opening the X11 display.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11259 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-01 20:44:56 +00:00
Manolo Gouy
4df3376ba9 Rename Fl_Xlib_Graphics_Driver.h to Fl_Xlib_Graphics_Driver.H
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11224 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-26 15:57:11 +00:00