This member function transforms the current clip region from FLTK units to pixel units
multiplying FLTK units by the current value of the scale factor to get pixel units.
The current clip region has been, by construction, restricted to the 16-bit coordinate space.
But these data can evade this space after multiplication by the scale factor.
Thus, it's necessary to enforce the 16-bit space here which is done with Fl_Xlib_Graphics_Driver::XRectangleRegion.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12727 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
In FLTK 1.3.x only horizontal and vertical long lines with endpoints
outside the 16-bit coordinate space could be drawn with proper X11
coordinate clipping. Now arbitrary lines are clipped so they can be
drawn with X11 functions.
All rectangles are clipped as well (as in 1.3).
Todo: The code needs better documentation and clipping of polygons,
circles, curves etc. is still missing. The next step should be the
clipping of polygons...
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12725 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
At this point, Windows FLTK apps detect HighDPI displays and rescale their GUI accordingly. They also
all reply to ctrl/+/-/0/ keystrokes to enlarge/shrink/reset their windows.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12723 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This is the first commit of X11 16-bit coordinate space (clipping) fixes.
More to follow...
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12722 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
The Android example files in directory Android/... are not touched.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12702 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This definition was introduced in svn r6657 (STR #2147) but never used.
The new driver model in FLTK 1.4 makes it (the intention described in
STR #2147) even more obsolete.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12689 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
instead of the deprecated Fl_Surface_Device::set_current().
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12688 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This update ought to work with
fltk-config [--use-images] [--use-gl] --compile <c source file>
on both Windows and Unix/Linux when built with CMake. It was tested
under Windows and Linux using fltk-config directly from the build tree,
but it should work as well after installation.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12686 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Several other platform-independent source files (e.g., Fl_Browser.cxx, Fl_Group.cxx) use malloc/realloc/free without
including a special header file for the Windows platform. Thus, Fl_Table.cxx can just be likewise.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12683 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
These were introduced at r12647, that is, during development of the 1.4 API.
These functions provided windowless support only on the MacOS platform,
where this can be obtained without those functions.
Windowless support on other platforms would require changing the event
loop. There's no evidence from STR's there's a demand for windowless mode
on other platforms.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12680 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
It's also necessary to prevent FLTK from rescaling windows moved between screens with different DPI's.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12678 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
FLTK reads during fl_open_display() the scaling factor of each screen and uses that to transform
FLTK units into screen units. This change avoids this reading if the app declared to be DPI-aware
though a manifest, a symptom that the app supports HighDPI independently from FLTK.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12677 ea41ed52-d2ee-0310-a9c1-e6b18d33e121