summaryrefslogtreecommitdiff
path: root/src/Fl_Shared_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-10-30Complete introduction of virtual Fl_RGB_Image *Fl_Image::as_rgb_image() ↵Manolo Gouy
begun at r.12061 git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@12062 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-10-30Add virtual Fl_RGB_Image* Fl_Image::as_rgb_image() to detect whether an ↵Manolo Gouy
Fl_Image is derived from Fl_RGB_Image git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@12061 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-10-21Reorganize and simplify function Fl_Graphics_Driver::draw(Fl_Shared_Image *, ↵Manolo Gouy
int, int) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@12052 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-10-01Fl_Shared_Image documentation enhancements and clarifications.Albrecht Schlosser
Minor code changes (e.g. renaming of variables) included, but no functional changes. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@12003 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-09-12Create virtual void Fl_Graphics_Driver::draw(Fl_Shared_Image*,...)Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11936 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-24Remove FL_ABI_VERSION directivesManolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11692 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-10Fix MSWindows compile issues.Matthias Melcher
Fixed a few warnings and a compilation issue introduced from previous reorganization. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11143 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
2015-03-12More detailed Doxygen doc of Fl_Shared_Image::scale() and ↵Manolo Gouy
Fl_Image::draw(X,Y,W,H,cx,cy). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10618 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-03-11Implementation of Fl_Shared_Image::scale(width, height) for scaled image ↵Manolo Gouy
drawing - cont'd don't call Fl_Graphics_Driver::draw_scaled(Fl_Image*,...) for an enlarged Fl_Bitmap or Fl_Pixmap git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10617 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
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-01-24Adding embedded documentation to Fluid if installed odcs are not found. ↵Matthias Melcher
Falls back to the internet if that does not exist either. Also, adds JPEG and PNG images to the Shared Image list if they were loaded from memory - see example use in fluid.cxx which loads and embedded html document containing an embedded PNG image. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8306 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-10-28Fixed a bunch of warnings from gcc 4.4.5 . Most of these are parenthesis ↵Matthias Melcher
missing to make the precedence of && over || obvious. Ah well, why not... git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7765 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-01-01Changed Copyright in 'src' directoryMatthias Melcher
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6616 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-09-19Updating fl_utf8.h references. Fixing copyright date in .fl files.Matthias Melcher
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6311 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-09-16Doxygen documentation : took the opportunity to update copyright info as we ↵Fabien Costantini
modified already in batch almost all sources, added also a fil doxygen command to class headers to harmonize with original matt Fl_Widget dox. format. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6265 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-09-14Doxygen Documentation WP5 Done, WP6 half finished so that all Fl_Image class ↵Fabien Costantini
hierarchy is up-to-date. Also completed the documentation of the useful Fl_Shared_Image. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6241 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-09-10Merging the UTF8 patch, consisting of O'ksi'd s original 1.1.6 patch and ↵Matthias Melcher
additions by Ian. PLEASE BE AWARE that the patch in its current incarnation is a regression in many aspects and further work is required before we can announce Unicode support. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6212 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2006-02-22Don't try to load image file we couldn't openMichael R Sweet
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4794 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2005-04-16Update source file headers with STR web page.Michael R Sweet
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4288 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2005-02-24Copyright updates.Michael R Sweet
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4052 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2005-02-12Fix initializers and error handling.Michael R Sweet
src/Fl_JPEG_Image.cxx: - Add custom error manager structure and update error and output handlers so we properly handle bad JPEG files. src/Fl_Shared_Image.cxx: - Add initializers for num_handlers, alloc_handlers, and handlers variables. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4040 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2004-12-03Fl_Shared_Image::reload() didn't set the image_ pointer properlyMichael R Sweet
in all cases (STR #632) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3929 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2004-09-24Now look for 8 bits of alpha when the developer has requestedMichael R Sweet
FL_RGB8 (STR #541) The last line in an Fl_Help_View widget was not aligned properly (STR #536) The "search" symbol looked like a Q (STR #536) Changed Fl_Help_View::get_color() to use a lookup table to avoid serious Borland C++ 5.5 compiler bugs (STR #533) Fixed Watcom compiler warnings with FL/Fl_Widget.H (STR #540) The image class copy() methods did not always make a separate copy of the image data (STR #539) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3844 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2004-04-11Copyright updates and prep for 1.1.5rc1.Michael R Sweet
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3391 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2003-01-30Copyright update for 1.1.3 release (not quite yet, but soon...)Michael R Sweet
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2936 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-10-20Implement Fl_Shared_Image::uncache().Michael R Sweet
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2679 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-10-11Use memmove() instead of memcpy() in several key places.Michael R Sweet
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2672 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-08-09Move the rest of the image file formats (except for XBM and XPM) toMichael R Sweet
the fltk_images library; saves about 16k in the FLTK core library on my Intel system. Fix a memory leak bug in most of the fl_set_fonts*.cxx implementations; as a result, the Fl_Fontdesc structure now has a fontname member to old the human-readable font name. Lots of fixes for shadowed variables, etc. Use snprintf, strlcpy, and strlcat in more places. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2566 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-07-14Boy, aren't WIN32 compilers *so* much fun.Michael R Sweet
Fix more export problems, make some more static inline methods regular functions, don't use FL_NORMAL_SIZE in a static initializer since BC++ doesn't seem to support it... git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2531 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-06-28Separate the extra image functions into fltk_images.Michael R Sweet
Add new fl_register_images() function to register the extra file formats with Fl_Shared_Image. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2329 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-06-28Increase size of header buffer to 64 bytes.Michael R Sweet
Fix XBM file loader. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2327 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-05-25Clean up string includes.Michael R Sweet
Fix Fl_Shared_Image::add_handler() and friends. Fix Fl_PNM_Image loader. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2260 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-05-25Tag image data as allocated so that we don't waste memory.Michael R Sweet
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2257 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-05-25Mark loaded images as allocated so that they get deleted.Michael R Sweet
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2256 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-04-11Make Fl_Output a subclass of Fl_Input, and add input_type and readonlyMichael R Sweet
methods/constants to support Fl_Output as a special case of Fl_Input (you can do everything but change the text in Fl_Output...) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2073 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-03-29Add image handler to Fl_Shared_Image class to support additional fileMichael R Sweet
formats. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2048 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-01-06Add Fl_BMP_Image class and docos.Michael R Sweet
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1914 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-01-01Copyright updates...Michael R Sweet
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1903 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2001-12-19Multiple bug fixes from Sebastien:Michael R Sweet
- Fl_GIF_Image and Fl_PNG_Image didn't close the file before calling Fl::error(). - Fl_Help_View didn't clear the line array in Fl_Help_Block, and Fl_Help_Block::font and ::size were not used. - Fl_Shared_Image::get() didn't return NULL if the image could not be loaded. - Switched to more efficient code for Fl_Tiled_Image::color_average() and ::desaturate(). - Don't delete children in Fl_Text_Display since the group will do it. - Fixes to filename_isdir(), filename_absolute(), and filename_relative(). - Was using numbers instead of define constants for some OpenGL stuff under WIN32. - Wasn't exporting threading functions under WIN32. - The Fl_Widget destructor now removes from the parent to avoid a Purify error since the old widget would be referenced by the parent when it was destroyed; this has no apparent performance impact since Fl_Group::clear() sets children_ to 0, making Fl_Group::remove() very fast... - WIN32 font enumeration datatype fixes... git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1878 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2001-12-11Multiple fixes from Sebastien.Michael R Sweet
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1833 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2001-11-29VC++ fixes, plus add new tiled_image project file.Michael R Sweet
Use the plastic box type for the tiled_image demo. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1783 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2001-11-24Added XBM, XPM, and PNM image file classes.Michael R Sweet
The pixmap_browser demo now supports all image formats via Fl_Shared_Image. Dropped image file stuff from image demo. Added Fl_Tiled_Image class, which tiles an Fl_Image, useful for tiling a background image in groups. Added tiled_image demo. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1725 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2001-11-24Fix bugs in copy() methods.Michael R Sweet
Add Fl_Shared_Image class, with get() and release() methods. Update Fl_Help_View to use Fl_Shared_Image class. Update image demo to accept a filename, and to use the Fl_Shared_Image class. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1714 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2001-09-29This commit was manufactured by cvs2svn to create branch 'branch-1.1'.No Author
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1613 ea41ed52-d2ee-0310-a9c1-e6b18d33e121