Commit Graph

113 Commits

Author SHA1 Message Date
Paul Cornett
fb89d7b225 Minor cleanup, no real changes
Remove unneeded forward declaration, unused variable
2019-02-02 11:27:37 -08:00
Paul Cornett
10d1954832 Simplify converting gray PNG data to RGB
libpng can do that for us
2019-02-02 11:15:36 -08:00
Paul Cornett
5771b371f2 Use memset rather than a loop to set memory to a fixed value 2019-02-02 11:01:05 -08:00
Paul Cornett
28010b51f0 Simplify memory allocation for PNG image data
Allocate one block for the whole image, rather than a block for each row
2019-02-02 10:56:33 -08:00
pavel-t
5994248648 Keep actual number of allocated lines in numLines 2018-07-23 09:21:40 +03:00
pavel-t
58f0fd65fe Store info_ptr and png_ptr in wxPNGImageData
Avoid having to use goto in DoLoadPNGFile and have all clean-ups in wxPNGImageData destructor.
2018-07-23 09:01:56 +03:00
pavel-t
e3df636d82 Make DoLoadPNGFile member function of wxPNGImageData
Avoid adding "data." everywhere in DoLoadPNGFile code
2018-07-23 08:33:10 +03:00
Vadim Zeitlin
e24e9323e0 Fix clobbering warnings in PNG image loading code in a better way
Add wxPNGImageData and use it to store variables that used to be local
in wxPNGHandler::LoadFile() and could be clobbered by the use of
longjmp() and pass these variables to DoLoadPNGFile(), which still uses
longjmp(), whereas LoadFile() doesn't any longer.

In addition to fixing the warning, this allows to use C++ dtors for
freeing memory and makes the code shorter and, arguably, more clear than
the original version (although written in an unusual way) and definitely
more clear than the version with the warning fix.

This reverts commit 99ea06203a ("Fix
clobbering warning") and replaces it with a different solution to the
same problem.
2018-07-21 16:00:08 +02:00
pavel-t
99ea06203a Fix clobbering warning 2018-07-03 13:33:03 +03:00
Paul Cornett
837c3a0df1 remove unused function 2016-02-14 13:40:07 -08:00
Vadim Zeitlin
f844b45815 Don't convert alpha channel to mask when loading PNG images
This seemed like a good idea many years ago when plenty of code (inside and
outside of wxWidgets) couldn't deal with the real alpha correctly, but this is
not the case since quite some time any more and producing an image without
alpha channel when loading a PNG image with transparency is more surprising
than useful now, so don't do it any more.

Closes #3019.
2016-02-08 02:28:00 +01:00
Dimitri Schoolwerth
8f8d58d193 Use wx-prefixed macros throughout the repository.
Change {DECLARE,IMPLEMENT}_*CLASS and {DECLARE,BEGIN,END}_EVENT_TABLE
occurrences to use the wx-prefixed version of the macros.
2015-04-23 22:00:35 +04:00
Vadim Zeitlin
49b8d79c87 Remove (Open)Watcom support.
This compiler is not being developed since several years and almost certainly
can't be used to build the current wxWidgets sources anyhow, so remove all
support for it, including a lot of extremely ugly workarounds for its bugs
with template functions.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76546 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-16 13:01:06 +00:00
Stefan Csomor
f18d7097da adding wxFALLTHROUGH where until now we had comments, allows for code-analysis support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76399 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-04-26 17:36:32 +00:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Vadim Zeitlin
fff5f7d5d8 Merge libpng 1.6.2 into the trunk.
Add pngprefix.h file generated by libpng configure/make process (which we
don't run during wxWidgets build, so this is something that will need to be
redone manually whenever libpng is upgraded, the procedure for doing this is
documented in docs/tech/tn0025.txt) in order to use "wx_" prefix for all
libpng public symbols. This should avoid at least some problems due to the
conflicts between the built-in libpng and shared libpng loaded into the
process as GTK+ libraries dependency under Unix.

Also rename wx_png_{warning,error} to use upper case PNG for consistency with
wx_PNG_stream_{reader,writer} and to avoid conflict with png_{warning,error}()
which we now rename to have "wx_" prefix.

Closes #14157.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74451 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-07 17:44:15 +00:00
Paul Cornett
784d9056f4 sizeof(char) is 1. By definition.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73407 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-20 03:08:33 +00:00
Vadim Zeitlin
0e1f8ea4a3 Remove wxMGL port.
The company behind MGL toolkit (SciTech) doesn't exist since several years and
this port is not used by anybody, so remove it to ease maintenance burden.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70353 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-15 14:46:41 +00:00
Vadim Zeitlin
5568067a3d Fix harmless gcc warning about uninitialized mask in PNG saving code.
The mask was actually only used when it was initialized (or, conversely, the
mask was always initialized when it was used) but gcc doesn't seem to notice
this and still warns that mask components "may be used uninitialized in this
function".

Suppress the warnings by always initializing the mask, even if we don't use
it.

Closes #13333.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68309 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-19 22:36:00 +00:00
Dimitri Schoolwerth
a1b806b982 Replaced Ok() occurrences with IsOk() throughout trunk.
Additionally renamed wxOSX' private wxNativePrinterDC::Ok() function to IsOk().

Didn't deprecate the various Ok() functions: given the amount of changes already introduced in 3.0 a trivial one like this seems more suitable for after 3.0.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-05-03 16:29:04 +00:00
Dimitri Schoolwerth
4c51a665c6 Fixed various typos.
Applied patch by snowleopard2 fixing a bunch of typos such as misspellings and double words in the documentation. Combined the patch with some local queued typos waiting to be committed as well as adding new typo fixes inspired by the patch.

Function names with American spelling were not changed nor was third-party code touched. The only code changes involve some changes in strings that are translated ("Can not" -> "Cannot").

Closes #13063 (again).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-22 14:17:38 +00:00
Dimitri Schoolwerth
f2c8079119 Added support for reading image resolutions from PNG images.
Patch by scottb. Closes #12893.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67219 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-16 12:46:03 +00:00
Dimitri Schoolwerth
8529b0b909 Improved palette handling with saving PNG files.
Instead of converting alpha to a mask an attempt is made to write a palettised PNG file with an ARGB palette using a maximum of 256 transparency values where formerly just up to one was supported. GIF images with 256 colours and transparency can now also be saved as a palettised PNG instead of true colour, making the image a lot smaller.

Applied (modified) patch by troelsk. Closes #12850.



git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67101 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-01 21:29:17 +00:00
Paul Cornett
c742231d29 remove deprecated voidp, closes #12896
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66743 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-24 17:36:44 +00:00
Dimitri Schoolwerth
b057ac075b Fixed saving PNG in wrong format sometimes.
When explicitly requesting saving as a palettised image but then later on that turns out to not be possible (or desired) the image would be marked as PNG_COLOR_TYPE_GRAY or PNG_COLOR_TYPE_GRAY_ALPHA. Simply set the colour type to RGB if this occurs also updated the unit test to catch this case.

This is similar to the fix in r66590 but that one was related to wxUSE_PALETTE == 0 cases.



git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66617 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-07 08:48:43 +00:00
Dimitri Schoolwerth
13c5d825d3 Always save PNG as a true colour image instead of possibly a palettised image when wxUSE_PALETTE is set to 0.
With wxUSE_PALETTE set to 0 and the user forcing to want a wxPNG_TYPE_PALETTE format the image would (partially) be marked as PNG_COLOR_TYPE_GRAY or PNG_COLOR_TYPE_GRAY_ALPHA instead and also saving would fail later on. Instead detect this specific case and save in the wxPNG_TYPE_COLOUR format.



git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-05 11:39:44 +00:00
Vadim Zeitlin
967956ddcf Compilation fix for PNG saving code when wxUSE_PALETTE==0.
Don't handle wxPNG_TYPE_PALETTE and don't compile PaletteFind() in at all when
wxUSE_PALETTE is off.

Closes #12505.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66577 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-04 15:10:09 +00:00
Dimitri Schoolwerth
50fa616c35 Minor wxPNGHandler cleanup.
Use int instead of png_uint_16 everywhere regarding number of palette entries, similar to how libpng exposes it (internally it uses png_uint_16).



git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66571 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-04 13:33:48 +00:00
Dimitri Schoolwerth
1de255d613 Fixed deprecated usage warnings in wxPNGHandler.
Since upgrading to a newer libpng its structure members are marked as deprecated (probably as a way to discourage their direct usage). Replaced accessing them by using function calls instead.



git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66570 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-04 13:06:45 +00:00
Dimitri Schoolwerth
8ee313d2be Added support for saving PNG files with palette.
Based on (heavily modified) patch by troelsk.

Closes #12505.



git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66552 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-03 22:22:16 +00:00
Vadim Zeitlin
ccec90930c Add wxVersionInfo and functions returning it for 3rd party libraries.
Add simple wxVersionInfo class holding the version information.

Also add GetLibraryVersionInfo() static method to wx{JPEG,PNG,TIFF}Handler,
wxStyledTextCtrl and wxXmlDocument classes and wxGetZlibVersionInfo() and
wxGetLibraryVersionInfo() global functions using it.

Closes #12690.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66259 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-25 00:53:44 +00:00
Vadim Zeitlin
9a83f86094 Globally replace _T() with wxT().
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Vadim Zeitlin
af58844636 Add information about the log message generation location to wxLog.
This means that wxLog::DoLogRecord() can now retrieve the file name, line
number and the function where the message was logged.

An unfortunate consequence of this change is that now

	if ( condition )
		wxLogError("Whatever");

results in a warning from g++ 4.x with -Wparentehses, so extra parentheses had
to be added in many places.

Finally, also allow storing arbitrary attributes in wxLogRecordInfo. This had
to be added to implement our own overloaded wxLogStatus() and wxLogSysError()
and will probably be useful for the others as well.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61363 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-09 20:26:34 +00:00
Vadim Zeitlin
817b3d0e78 removed assert checking that bit depth is 8 or 16 as the code appears to work correctly for 1, 2 and4 bit depths as well (closes #10840)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60890 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-04 08:23:32 +00:00
Vadim Zeitlin
5550f66bce don't free() the same pointer twice if an error occurs during lines pointers allocation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60875 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-02 13:50:30 +00:00
Francesco Montorsi
8faef7ccbc document that CanRead() and GetImageCount() functions of wxImageHandlers do NOT modify the current stream position and that they require seekable streams; rename current GetImageCount() functions to DoGetImageCount() and put save-and-restore stream position logic in GetImageCount(); add comments in the various DoCanRead() and in DoGetImageCount() where the stream position is modified; remove unneeded SeekI(0) calls from DoCanRead() and DoGetImageCount() functions: they didn't allow to load images from non-seekable streams; implement forward-seeking in wxInputStream::SeekI() also for non-seekable streams
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60852 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-01 11:43:36 +00:00
Francesco Montorsi
7d7b3f69f2 do not export private symbols in wx shared libraries
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58351 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-24 13:40:46 +00:00
Vadim Zeitlin
d3b9f782ef don't use annoying and unneeded in C++ casts of NULL to "T *" in all other files neither
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-19 13:55:27 +00:00
Francesco Montorsi
d19ce8c491 add some wxIMAGE_OPTION_PNG_xxx options to wxImage and wxPNGHandler to allow the user to set the desired compression level (closes #10372)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58103 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-14 17:54:38 +00:00
Stefan Csomor
a37e742445 reverting style of include back to user include as before
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53506 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-09 16:57:43 +00:00
Paul Cornett
c3b10b4434 use PNGAPI if it is defined
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53479 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-07 16:23:55 +00:00
Vadim Zeitlin
f172cb8200 removed support for Salford compiler (which was almost certainly broken anyhow) (patch 1861133)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50960 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-31 10:05:00 +00:00
Paul Cornett
095cb950db fix double to int conversion warning
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45580 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-22 17:43:14 +00:00
Vadim Zeitlin
361f4288eb added support for image resolution options to PNG handler (heavily modified patch 1704128)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45567 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-21 19:29:01 +00:00
Robert Roebling
dcc36b34be [ 1579793 ] numerous bug fixes when mask is used
Corrects PNG handling and wxImage::Paste()


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42092 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-18 17:06:11 +00:00
Stefan Neis
dd61e8ed01 Use "cdecl" linkage mode for all ports with OpenWatcom (particularly WXPM).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41750 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-08 21:42:39 +00:00
Robert Roebling
982a6623f7 [ 1558691 ] wxPNGHandler: Preserve palette
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-17 11:43:17 +00:00
Włodzimierz Skiba
02761f6cd4 Include wx/module.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-08-31 19:31:43 +00:00
Włodzimierz Skiba
0bca037363 Include wx/bitmap.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39710 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-06-14 10:02:19 +00:00
Włodzimierz Skiba
e7c80f9e05 wx/debug.h is always unconditionally included by wx/defs.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39318 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-05-24 15:13:23 +00:00