Commit Graph

461 Commits

Author SHA1 Message Date
Manolo Gouy
8dccfc8838 HiDPI support under WIN32 platform: completed.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12285 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-03 17:31:57 +00:00
Manolo Gouy
7dc496e97d HiDPI support for WIN32 platform: begin to support screen-specific scale factor.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12280 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-29 09:44:35 +00:00
Albrecht Schlosser
14a6e9d103 Fix code formatting and typos.
Added some braces around the bodies of one-statement for loops for clarity.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12278 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-28 20:34:05 +00:00
Manolo Gouy
85724f00a0 Better implementation of Fl_WinAPI_Window_Driver::reuse_cursor() that will also work with custom cursors.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12277 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-28 17:07:09 +00:00
Manolo Gouy
582701ba07 HiDPI support: keep window's icons after rescaling
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12276 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-28 15:15:34 +00:00
Manolo Gouy
322b62a9f1 HiDPI support: keep window's cursor after rescaling.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12275 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-28 13:33:53 +00:00
Manolo Gouy
7f15c3010c WIN32 platform: more progress for full HiDPI support
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12273 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-27 12:17:29 +00:00
Manolo Gouy
7fbf318c53 Exact computation of scaled clipping region for X11 platform.
Each rectangular component of the clipping region is transformed exactly as by Fl_Xlib_Graphics_Driver::rectf_unscaled()

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12272 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-27 07:39:58 +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
fa3d8c6259 HiDPI support under WIN32: fix bugs with tile demo and with fullscreen demo.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12268 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-19 17:30:03 +00:00
Manolo Gouy
cd1fd95f05 HiDPI support under WIN32: fix fullscreen mode when scaling factor is > 1.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12267 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-19 11:48:16 +00:00
Manolo Gouy
4e72aac792 HiDPI support under WIN32 platform: fix Fl_WinAPI_Window_Driver::capture_titlebar_and_borders() under XP.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12266 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-19 11:37:01 +00:00
Manolo Gouy
701fa00c7c Advancing HiDPI support for the WIN32 platform - still incomplete.
It's still necessary to compile with -DFLTK_HIDPI_SUPPORT
to activate the new HiDPI support.
Default builds get the same HiDPI support as in FLTK 1.3

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12265 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-18 16:01:53 +00:00
Manolo Gouy
2cda5a4fa6 Make Fl_Screen_Driver::get_mouse(int&, int&) return the number of the mouse-containing screen.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12264 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-17 06:53:44 +00:00
Albrecht Schlosser
e14c387e8e Limit initial scaling factor to sensible values.
FLTK_SCALING_FACTOR=0 or negative values would issue unexpected
X11 warnings or crash immediately.

Also commented out scaling factor output statements (printf).


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12261 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-15 15:39:55 +00:00
Manolo Gouy
fe4f37519d Remove temporary code used for development of the scaling support.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12257 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-10 06:28:12 +00:00
Manolo Gouy
6b2c5fcd09 X11 platform: Accurate box graphics at wide range of scaling factor values.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12254 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-06 19:09:02 +00:00
Manolo Gouy
822f14c77a Fix problem introduced at r.12247
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12251 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-02 14:04:31 +00:00
Manolo Gouy
12fd93485f Remove the 'defined(WIN32)' and 'defined(__APPLE__)' preprocessor directives introduced at r.12239
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12247 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-01 17:41:42 +00:00
Manolo Gouy
0960d07315 Additional check in Fl_Xlib_Graphics_Driver::font_unscaled(Fl_Font, Fl_Fontsize) to recognize if current font is unchanged.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12246 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-01 15:23:26 +00:00
Manolo Gouy
90efebb97e Divide virtual Fl_Screen_Driver::open_display() in a platform-specific part followed by a platform-independent part.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12245 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-01 14:05:47 +00:00
Manolo Gouy
3a390bfb5f X11 + Pango platform: improve text drawing with angle.
Make sure that text length computed without angle is equal to text length drawn with angle.
This property is essential so that rotated text appears at controlled location at both ends.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12244 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-05-22 14:42:06 +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
39b2976f88 De-duplicate code to load pointer to the TransparentBlt() system function at run-time.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12234 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-05-06 07:36:40 +00:00
Manolo Gouy
0794cc0ceb Fix erroneously cased include file names
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12233 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-05-05 16:27:59 +00:00
Manolo Gouy
18a84d073d Remove Fl_Translated_GDI_Graphics_Driver and have its functions performed by Fl_GDI_Graphics_Driver.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12227 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-25 17:05:17 +00:00
Manolo Gouy
2ddc89fb61 Add an argument to the private, virtual member function void Fl_Surface_Device::end_current_().
The X11 platform uses this argument to restore the correct clipping state after
drawing to an Fl_Image_Surface object.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12226 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-25 12:42:22 +00:00
Albrecht Schlosser
f15f477243 Remove unused variable from class Fl_Xlib_Image_Surface_Driver.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12225 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-24 21:19:20 +00:00
Manolo Gouy
05b9f2bc98 Undo change at r.12221 because it's done at r.12222 in a cross-platform fashion.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12223 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-24 10:43:24 +00:00
Albrecht Schlosser
da31ffd952 Fix Fl_Image_Surface::image() as discussed in fltk.general
See thread "fl_pop_clip: clip stack underflow! warning on X11"
started on Thu, 20 Apr 2017.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12221 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-23 10:43:48 +00:00
Manolo Gouy
ed807788ff Fix for STR#3374: Crash with pango enabled when changing default font
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12218 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-12 12:41:47 +00:00
Albrecht Schlosser
cd10796251 Fix Windows CreateDC/DeleteDC mismatch (STR #3373).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12217 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-11 21:53:50 +00:00
Manolo Gouy
1c0b4d9b60 Fixed typo in warning message.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12215 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-07 16:42:23 +00:00
Manolo Gouy
eb2df7e3b9 Account for translation also in non-Pango code section.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12211 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-03-17 21:06:55 +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
878cd0b0b3 The new Fl_Xlib_Graphics_Driver::draw_scaled() member function must also account for possible translation.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12206 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-03-17 16:56:06 +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
0648489b9a Fix the projective transformation matrix used for Xrender-based scaled image drawing.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12201 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-03-17 08:58:17 +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
Albrecht Schlosser
0ae21376f1 Fix include file case (patch from Haiku port, thanks).
Ref.: https://github.com/mmuman/fltk-test-only.git,
commit 59c3cfbdf0412fb30f8312ed9ddd96f5affd2f0a by François Revol.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12195 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-03-13 23:06:08 +00:00
Manolo Gouy
c37744cde9 Add to Fl_System_Driver support for measuring time with split second resolution.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12187 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-03-07 16:58:13 +00:00
Albrecht Schlosser
2d18660f5c Fix typo (case) in include file name.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12180 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-02-25 19:31:36 +00:00
Manolo Gouy
aa917d709c Avoid potential crash occurring after calling win->show(0,0)
See [fltk.general] Drawing to Fl_Offscreen received signal SIGSEGV, Segmentation fault.
that is unrelated to Fl_Offscreen but caused by calling win->show(0,0).

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12179 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-02-22 11:33:12 +00:00
Manolo Gouy
393e481756 Mac OS: remove unused members variables from platform-specific struct Fl_Window_Driver::shape_data_type
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12178 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-02-20 12:57:40 +00:00
Manolo Gouy
ebae29222d Fl_OpenGL_Graphics_Driver : use gl_font()/gl_draw() to draw text in a GL window - continued.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12163 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-01-10 17:21:14 +00:00
Manolo Gouy
723012c2bd Fl_OpenGL_Graphics_Driver : use gl_font()/gl_draw() to draw text in a GL window.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12162 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-01-10 15:33:14 +00:00
Albrecht Schlosser
3145e06585 Fix CMake config.h and compiler warnings.
Fixed warnings: -Wsign-compare, -Wunused-but-set-variable.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12155 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-12-23 15:40:25 +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
00ebcd23aa Fix Fl_Xlib_Graphics_Driver::delete_bitmask() : the pixmap argument is to be deleted by XFreePixmap().
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12152 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-12-21 14:52:16 +00:00