summaryrefslogtreecommitdiff
path: root/src/Fl_Image.cxx
AgeCommit message (Collapse)Author
2017-05-17Introduce HiDPI + rescaling support for the X11 platform (+ partial support ↵Manolo Gouy
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
2016-11-09Use Fl_Graphics_Driver::default_driver() when convenient.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@12088 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-11-02Accept empty Fl_Pixmap in Fl_RGB_Image c'tor (STR #3348).Albrecht Schlosser
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@12074 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-10-14Fix inconsistent interpretation of ld() in image handling (STR #3308).Albrecht Schlosser
Documentation has been fixed and clarified, and ld() handling is now consistent in Fl_(RGB_)Image, their subclasses and fl_draw_image() and similar functions. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@12029 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-08-27Add Doxygen comments for the Fl_RGB_Image::alloc_array and ::array public ↵Manolo Gouy
attributes. Also, document what is the value of alloc_array after construction of an Fl_RGB_Image object. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11897 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-08-09Fix typos, separate local variables of image scaling algorithms.Albrecht Schlosser
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11869 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-17MSWindows fixes for previous commits.Matthias Melcher
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11644 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-25Remove a bunch of useless #include <FL/x.H> directives.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11422 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-23Fix Fl_RGB_Image::uncache() and Fl_Bitmap::uncache().Manolo Gouy
It is not possible to use fl_graphics_driver in these functions because when they are called *fl_graphics_driver may have been deleted. A solution is to use Fl_Display_Device::display_device()->driver() instead which is always valid. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11212 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-10Moving fl_beep into screen driver.Matthias Melcher
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11152 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-09Move ifdef's in RGB_Image into driver system.Matthias Melcher
- change image caching variable types to uintptr_t - added driver function to uncache image data - cleaning up (Xlib and GDI will likely throw syntax errors. Trying to fix ASAP) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11138 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-31Needed for Linux/Unix build.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11098 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-29Fixed a few warnings from a picky compiler setting.Matthias Melcher
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11086 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-27Modify Xlib driver code not to #include source files.Albrecht Schlosser
Adjusted CMake build, and with some additional temporary #ifdef's the old Linux Makefile system works as well. Defined FL_LIBRARY_CMAKE for now - will be removed later. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11067 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-27Removed all references to Quartz driver files from library headers in Xcode. ↵Matthias Melcher
Works in Xcode. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11065 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-271) Added a new way to detect whether the drawing operation is using the ↵Manolo Gouy
platform's native driver and whether we are printing: virtual int Fl_Graphics_Driver::has_feature(driver_feature feature) This is also because it is not convenient to derive a printer-specific driver with its own implementation of virtual functions when this implementation differs only in one line of code. 2) Solved the problem of inclusion of non public header by the public header FL/Fl_Device.H: bracket this with #if FL_LIBRARY / #endif so this non public header is included only when building FLTK itself. 3) Removed several (but not all) of the FLTK_ABI_VERSION guards that are no longer useful for code targeting FLTK 1.4. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11063 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-04Created pseudo code for all FL_PORTED section so that FLTK compiles and ↵Matthias Melcher
links (Xcode, hello, other C flags: -D FL_PORTING -U __APPLE__ -U __APPLE_QUARTZ__) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@10993 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-03Updated platform specific #if's to report unimplemented code when compiling ↵Matthias Melcher
with FL_PORTING defined and WIN32 and __APPLE__ undefined> git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@10989 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-06-08Fixed typo in Doxygen doc of Fl_RGB_Image constructor.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10744 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-05-24Moved docs for fail() from prototype in Fl_Image.H -> implementation in ↵Greg Ercolano
Fl_Image.cxx. Also added coded example to assist app programmers in usage. (Matt: feel free to modify the example code as needed) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10734 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-05-23STR #2873: new function Fl_Image::fail() that returns 0, ERR_NO_IMAGE, ↵Matthias Melcher
ERR_FORMAT, or ERR_FILE_ACCESS to make life easier when loading images. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10732 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-04-28Doc clarifications for Fl_Image methods:Greg Ercolano
> inactive() > desaturate() > color_average() git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10725 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-03-16Add support for accelerated alpha blending under X11.Lauri Kasanen
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10628 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-03-11Implementation of Fl_Shared_Image::scale(width, height) for scaled image ↵Manolo Gouy
drawing - cont'd Shorter implementation based on Fl_Graphics_Driver::draw_scaled(Fl_Image *,...). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10616 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-03-10Added Fl_Shared_Image::scale(width, height) to support scaled image drawing ↵Manolo Gouy
(STR #3185). Useful for printing, PostScript or PDF output, or retina displays. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10615 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-02-11Fixed error introduced at r.10568 that prevented non-Apple compilation.Manolo Gouy
Also, replaced __APPLE_QUARTZ__ by __APPLE__ git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10571 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-02-10Mac OS: more parsimonious memory usage when drawing Fl_RGB_Image. The image ↵Manolo Gouy
data are no longer duplicated when printing an image with alloc_array = 1. Duplication remains when printing with alloc_array = 0. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10568 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-02-08Allow compilation with -std=c++11 on Mac OS XManolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10560 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-02-07Modified Fl_Quartz_Graphics_Driver::draw(Fl_RGB_Image *img,...) to accept ↵Manolo Gouy
worst case scenario for memory usage: while printing, delete the printed image before completing the printed page. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10559 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-10-14Move RGB image scaling algorithm methods in base class Fl_Image.Albrecht Schlosser
See also discussion in fltk.coredev of Sept 07, 2014 and later with subject "Fixing the nearest-neighbour scaling". git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10377 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-09-06Bilinear div-by-zero fixLauri Kasanen
Probably temporary if this will be replaced with Roman's int version, but better have it anyway. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10281 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-09-04Small fix in the bilinear formulaLauri Kasanen
After consulting Gimp again, the formula was missing a final divide. This takes care of the 1:1 discrepancy. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10270 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-09-03Add bilinear scaling support. STRs #2869 and #3062.Lauri Kasanen
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10268 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-06-12Add ability to convert a Fl_Pixmap into a Fl_RGB_Image.Pierre Ossman
This is very convenient as a lot of other functions only accept a Fl_RGB_Image. Adding this functionality also required a bit of spring cleaning in the the drawing routines. STR #2659. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10192 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2013-01-16Allow compilation with early Mac OS versions.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9795 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2012-11-09Fix STR#2881: the new static function Fl_RGB_Image::max_size(size) allows to ↵Manolo Gouy
control the maximum memory size allowed when creating an Fl_RGB_Image. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9709 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2012-03-18Fix STR#2810: removed all uses of function Fl_Device::class_name().Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9293 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2012-03-14Moved a few local variable declarations.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9283 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2012-03-14Simplified Fl_Paged_Device::print_window() under Mac OSManolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9282 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2012-03-12Replaced fl_copy_offscreen_with_alpha() by ↵Manolo Gouy
Fl_GDI_Graphics_Driver::copy_offscreen_with_alpha() and fl_create_offscreen_with_alpha() by Fl_Quartz_Graphics_Driver::create_offscreen_with_alpha() git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9278 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-07-19Modifications to all LGPL headers for STR #2685.Greg Ercolano
(to clarify static exception LGPL by changing license references) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8864 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-20Fixed alpha blending under X11 when line data size != 0 (STR #2606)Albrecht Schlosser
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8611 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-11-28Fixed Copyright to 2010.Matthias Melcher
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7903 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-07-01Renamed global variable from fl_device to fl_graphics_driver to better ↵Manolo Gouy
express its class git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7659 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-06-18Removed commented out codeManolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7649 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-06-07Fix image bug reported by Csaba in r7626 + fix regression in ps_image.cxx Manolo Gouy
inadvertently brought in by r7617. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7634 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-05-27Better device hierarchy with surfaces and graphics drivers.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7617 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-04-18Removed multiple inheritance: back to r. 7519 exactly.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7522 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-04-16Improved the hierarchy of Fl_Device subclasses to allow separation of ↵Manolo Gouy
platform-specific devices. This introduces multiple inheritance. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7520 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-04-14More logical use of Fl_Device::draw(<image class> *,...) functionsManolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7501 ea41ed52-d2ee-0310-a9c1-e6b18d33e121