Commit Graph

38 Commits

Author SHA1 Message Date
ManoloFLTK
527327b8e4 Restore CMake support of Darwin + XQuartz + fink test platform 2019-10-30 21:13:52 +01:00
ManoloFLTK
a2cbb03dc9 Improve Doxygen doc of the Fl_SVG_Image constructor 2019-03-26 11:06:55 +01:00
Manolo Gouy
26cb08badb Move Fl_Screen_Driver.H from FL/ to src/
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12975 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-06-26 14:04:09 +00:00
Manolo Gouy
5e45b7d4fe Better handling of very small input file when reading SVG image file.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12945 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-06-18 12:48:34 +00:00
Manolo Gouy
dcaf201239 SVG support: improve printed SVG images by increasing the resolution when printing.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12830 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-04-12 15:51:50 +00:00
Manolo Gouy
5040bbff1f Fix for STR#3457: Fl_SVG_Image handling of invalid width/height
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12806 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-26 16:17:00 +00:00
Manolo Gouy
916b44e361 New member function Fl_Image::scale(int width, int height) to set the FLTK size of an image.
Each image has now two sizes implemented as follows:
   - the pixel size is stored in private members pixel_w_ and pixel_h_
    with public accessors pixel_w() and pixel_h()
   - the FLTK size is stored in private members w_ and h_ and read by w() and h()
   - when the image is constructed, the two sizes have the same value
   - the protected w(int) and h(int) member functions set both FLTK and pixel sizes.
   - the public scale(int, int) member function is essentially nothing but
   set the FLTK size and don't change the pixel size.
   - when the image is drawn, its FLTK size determines how big it is drawn, its pixel
   size determines how much data are available to draw it.

FLTK 1.3.4 with FL_ABI_VERSION=10304 contained an equivalent member function
but only for the Fl_Shared_Image class.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12776 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-19 17:43:18 +00:00
Manolo Gouy
7ab977ac86 Documentation: homogenize uses of "FLTK units" and "drawing units".
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12734 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-11 07:17:20 +00:00
Albrecht Schlosser
4ebaee0f40 Reorganize nanosvg bundled library.
Rename altsvgrast.h to its original name nanosvg.h and use a new
GitHub fork of nanosvg to maintain FLTK specific patches.

https://github.com/fltk/nanosvg

The diff files (altsvgrast.diff and nanosvg.diff) are no longer necessary
and have been removed. For more information see README.bundled-libs.txt.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12646 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-04 21:39:50 +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
bc4662fd23 SVG images: fix image printing under MacOS when not used as a scaled Fl_Shared_Image
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12589 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-12-13 15:32:20 +00:00
Albrecht Schlosser
660f4160af Fix compiler warning [-Wunused-result].
Full warning:
  ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’,
  declared with attribute warn_unused_result [-Wunused-result]

Note: added "FIXME ...": current code ignores file read error.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12546 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-11-05 20:43:44 +00:00
Manolo Gouy
3d53e5b496 Doxygen doc: minor rewording for the Fl_SVG_Image class.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12539 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-11-03 09:04:56 +00:00
Manolo Gouy
839f52bc18 Fix for STR#3421: Fl_SVG_Image crashes if passed an svg file that is a static const char* string
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12536 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-31 16:56:23 +00:00
Manolo Gouy
1a153d7899 Fl_SVG_Image: remove use of gzdirect() that is absent in some old versions of zlib
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12519 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-21 14:02:55 +00:00
Albrecht Schlosser
f9cfe1378d Rename fl_open_ext() parameter 'translation' to 'binary'.
The default (0) is 'text' mode, non-zero is 'binary' mode on platforms
that distinguish text and binary mode.

Currently Windows is the only supported platform that needs this.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12500 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-15 12:34:24 +00:00
Manolo Gouy
db83933f58 Remove the Fl_SVG_Image::fl_gzopen() member function that is less useful with the new fl_open_ext() function.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12491 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-13 07:17:01 +00:00
Manolo Gouy
789ed089c9 Add fl_open_ext() to control whether the file is opened in binary/text mode.
This new function allows to write Fl_SVG_Image::fl_gzopen() in a completely platform-independent way.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12489 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-12 14:42:12 +00:00
Manolo Gouy
2678cb64f9 Fix compiler warning under Visual Studio.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12481 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-06 12:37:31 +00:00
Manolo Gouy
784ff3b52d Fl_SVG_Image::fl_gzopen(): write it more platform-independently (still not completely though)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12480 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-06 12:13:41 +00:00
Albrecht Schlosser
63420dd956 Fix name clash with zlib gzopen on (64-bit) Linux.
Compilation error message:

src/Fl_SVG_Image.cxx:80:21: error: out-of-line definition of 'gzopen64' does
not match any declaration in 'Fl_SVG_Image'; did you mean 'gzopen'?
void* Fl_SVG_Image::gzopen(const char *fname) {
                    ^~~~~~
                    gzopen
/usr/include/zlib.h:1709:20: note: expanded from macro 'gzopen'
#    define gzopen gzopen64
                   ^

The culprit was the macro defined in zlib.h (above).


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12479 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-05 18:32:52 +00:00
Manolo Gouy
0cec3f7e9d Fl_SVG_Image constructor: handle case where file cannot be opened.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12478 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-04 21:34:03 +00:00
Manolo Gouy
0b797d704c Fl_SVG_Image class: add support for compressed .svgz image files.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12477 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-04 16:26:51 +00:00
Manolo Gouy
7a9d5be6cb Undo commit at r.12475 that is not adequate.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12476 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-04 12:21:46 +00:00
Manolo Gouy
5e6bf76b0a Fl_SVG_Image class: add support for compressed .svgz image files.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12475 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-04 11:46:33 +00:00
Manolo Gouy
b258f4b029 SVG support: avoid re-rasterizing an image that was previously rasterized at higher resolution.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12460 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-18 12:15:08 +00:00
Manolo Gouy
435d135825 SVG support: draw images at full screen resolution also when there are several pixels per graphical unit, as with Apple retina displays.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12456 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-13 16:15:34 +00:00
Manolo Gouy
a0e7cbfa57 Fix nanosvg implementation of nsvg__atof() to allow compilation with Visual Studio 7.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12435 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-09 15:47:04 +00:00
Manolo Gouy
a03f8490e6 #include <locale.h> is no longer needed.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12434 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-09 12:52:39 +00:00
Manolo Gouy
8e558595e6 Make virtual member function Fl_Image::draw_scaled(int X, int Y, int W, int H) protected rather than private.
Consequently, remove the trailing _ from its name reserved for private class members.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12433 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-09 12:35:06 +00:00
Manolo Gouy
0bf5f9809a Modify nanosvg.h to support compilation by Visual Studio 7.
This is a new implementation that does not tamper with the program's locale.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12431 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-07 20:16:08 +00:00
Manolo Gouy
a222837123 Simplify code using plain atof() instead of implementing function nsvg__atof().
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12430 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-06 19:38:56 +00:00
Manolo Gouy
950ec3e863 Modify how the nanosvg source code is used to support compilation with Visual Studio 7.
1) The original nanosvg.h file is modified for FLTK in file fl_nanosvg.h. The only change is
to remove the implementation of function nsvg__atof().

2) FLTK provides an implementation	of nsvg__atof() based on sscanf().

3) FLTK changes the LC_NUMERIC locale to "C" before calling nanosvg
and resets it to its previous state after.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12423 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-06 16:25:42 +00:00
Manolo Gouy
276b8255e2 Improve doc of the Fl_SVG_Image public constructor.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12420 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-04 08:38:06 +00:00
Manolo Gouy
c42b4717a9 Fix erroneous Doxygen command in doc of Fl_SVG_Image::resize().
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12418 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-04 08:06:26 +00:00
Manolo Gouy
722faf50cf Class Fl_SVG_Image: use fl_fopen() to open files with non-ASCII characters in name.
Also, have copy() copy the value of the image's proportional member variable.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12417 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-04 07:55:21 +00:00
Manolo Gouy
d6349e180a Set svn:keywords
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12415 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-03 13:20:52 +00:00
Manolo Gouy
1a28d85dc3 Add new Fl_SVG_Image class to support scalable vector graphics images using the (modified) nanosvg software.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12413 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-03 13:14:25 +00:00