Commit Graph

54 Commits

Author SHA1 Message Date
Vincent Sanders
c105738fa3 Change LOG() macro to be varadic
This changes the LOG macro to be varadic removing the need for all
callsites to have double bracketing and allows for future improvement
on how we use the logging macros.

The callsites were changed with coccinelle and the changes checked by
hand. Compile tested for several frontends but not all.

A formatting annotation has also been added which allows the compiler
to check the parameters and types passed to the logging.
2015-05-28 16:08:46 +01:00
Vincent Sanders
d038af3178 Fix the PNG handler crashing in low memory situations.
Obtaining a netsurf bitmap buffer may fail on some frontends (RISC OS
especially) as the bitmap allocation is not performed until the
buffer is requested. The PNG image handler failed to check for this
when populating the row pointer structure.
2015-05-12 08:32:32 +01:00
Vincent Sanders
f37e52c394 Move bitmap operations into an operation table.
The generic bitmap handlers provided by each frontend are called back
from the core and therefore should be in an operation table. This was
one of the very few remaining interfaces stopping the core code from
being split into a library.
2015-04-13 23:19:04 +01:00
John-Mark Bell
c66c9fccf3 PNG: add more volatile to appease GCC 2015-02-24 17:06:57 +00:00
Michael Drake
a515248b59 Fix two genuine bugs found by Coverity. Checking the wrong pointers for NULL. 2013-10-23 11:52:37 +01:00
John-Mark Bell
8e66adaade Avoid calling bitmap_modified with NULL. 2013-01-13 17:14:10 +00:00
Vincent Sanders
baf50cec89 make image content handlers title setting use the heap instead of the stack and remove the possibility of buffer overruns 2012-10-25 11:12:41 +01:00
Michael Drake
a526209e74 More useful title info for images. 2012-10-24 18:22:45 +01:00
Vincent Sanders
c1671f37b1 reduce talloc usage to box tree layout only 2012-10-03 19:26:17 +01:00
John Mark Bell
0fad29846b Treat image/x-png as a synonym for image/png
svn path=/trunk/netsurf/; revision=13414
2012-01-29 20:43:59 +00:00
Vincent Sanders
df18a97143 Change GTK plotting to use cairo surfaces throughout
svn path=/trunk/netsurf/; revision=13354
2011-12-30 00:58:35 +00:00
John Mark Bell
0682a4f215 Appease GCC 3.4
svn path=/trunk/netsurf/; revision=12798
2011-09-15 22:54:23 +00:00
Vincent Sanders
b051cf466f Add Image cache and inegrate png and jpeg content handlers
Current periodic cache clean algorithm is poor and requires replacing with something suitable (probably a segregated LRU)
The speculative load algorithm is likewise poor and only uses the image size to make a decision.

svn path=/trunk/netsurf/; revision=12720
2011-09-04 23:50:14 +00:00
John Mark Bell
9ee4f6146e Remove mime_type parameter from content handler content_type callback API
svn path=/trunk/netsurf/; revision=12704
2011-09-03 09:27:42 +00:00
Vincent Sanders
2348b13492 refactor bitmap out of generic content structure
svn path=/trunk/netsurf/; revision=12686
2011-08-31 12:12:41 +00:00
Vincent Sanders
cd554e6f1e make image content handlers build conditional from teh makefile
svn path=/trunk/netsurf/; revision=12673
2011-08-28 14:29:15 +00:00
Vincent Sanders
81c52ad494 Initial image content handler refactor
svn path=/trunk/netsurf/; revision=12671
2011-08-27 08:43:51 +00:00
John Mark Bell
dc6c58ec41 Fix transition from LOADING to ERROR state after content has been locked for conversion
svn path=/trunk/netsurf/; revision=12614
2011-07-20 21:39:51 +00:00
John Mark Bell
c54b6aabaa Direct access of png_structp members is deprecated
svn path=/trunk/netsurf/; revision=12594
2011-07-07 22:41:23 +00:00
Michael Drake
eddae6af06 Remove plotter table global. Pass a redraw context around redraw functions. Knockout could be handled better. Note: untested on most front ends.
svn path=/trunk/netsurf/; revision=12543
2011-06-30 15:48:07 +00:00
Michael Drake
3128ecf2a5 Unify content_redraw params in content_redraw_data struct. Core and RISC OS content handlers updated.
svn path=/trunk/netsurf/; revision=12529
2011-06-28 20:17:39 +00:00
Michael Drake
6ed9b1de8b Fix warnings.
svn path=/trunk/netsurf/; revision=12472
2011-06-13 11:02:27 +00:00
Chris Young
91427fdfdb Redirect libpng errors to the standard NetSurf logfile
svn path=/trunk/netsurf/; revision=12471
2011-06-12 18:04:09 +00:00
Vincent Sanders
83f9e707eb refactor content handler initilisation to use named initialisors
svn path=/trunk/netsurf/; revision=12341
2011-05-09 15:32:34 +00:00
Vincent Sanders
8be1e85e91 consolidate content redraw
more cleanups ready for image content refactor

svn path=/trunk/netsurf/; revision=12317
2011-05-08 19:54:35 +00:00
Vincent Sanders
658cd31311 clean up jpeg image handling ready for refactor
svn path=/trunk/netsurf/; revision=12311
2011-05-08 15:14:21 +00:00
Vincent Sanders
f2e8be9fe7 Cleanup png code
only use the bitmap pointer in the png content the one in teh base content seems extraneous for png.

svn path=/trunk/netsurf/; revision=12304
2011-05-07 23:35:57 +00:00
John Mark Bell
e71691bae8 Merge branches/jmb/content-factory to trunk
svn path=/trunk/netsurf/; revision=12283
2011-05-06 20:40:09 +00:00
John Mark Bell
86a2e0076d Fix bug #3194007: stop emitting duplicate READY/DONE events.
* Make content handlers responsible for setting READY/DONE state & emitting events.
	* Stop content_convert doing this when there is a registered convert function for the content type.

svn path=/trunk/netsurf/; revision=11850
2011-02-27 20:11:39 +00:00
John Mark Bell
f42ed976e5 Constify
svn path=/trunk/netsurf/; revision=11680
2011-02-14 19:17:08 +00:00
Michael Drake
fe7921a387 Pass clip rect as struct through content_redraw api. Update the front ends to use this. Note only RO build tested.
svn path=/trunk/netsurf/; revision=11670
2011-02-13 22:25:11 +00:00
John Mark Bell
0818ae160e Remove unnecessary assertion (we've already handled the NULL case)
svn path=/trunk/netsurf/; revision=11265
2011-01-09 13:02:03 +00:00
John Mark Bell
48ba03d6ca Remove erroneous assertion: there may be no bitmap object if there was no PNG data.
svn path=/trunk/netsurf/; revision=10540
2010-05-01 11:36:44 +00:00
John Mark Bell
79ce683b4e Most of a stop implementation.
Remaining work:
  1) Clone content_html_data
  2) Cloning content_css_data requires the charset of the old content
  3) Calling hlcache_handle_abort() before a content has been created must clean up the retrieval context.

svn path=/trunk/netsurf/; revision=10236
2010-04-04 12:41:19 +00:00
John Mark Bell
43a99ab683 Constify data parameter to *_process_data
svn path=/trunk/netsurf/; revision=10234
2010-04-03 16:37:36 +00:00
John Mark Bell
49810d8191 Use mutator to modify content's title field.
svn path=/trunk/netsurf/; revision=10231
2010-04-03 11:55:28 +00:00
John Mark Bell
9aca901eb1 The convert stage of a content's state progression no longer reflows the content to the provided dimensions.
It is now defined as converting the content into a state in which it is ready for use.
The user of the content is now responsible for performing an initial reformat (sic) of the content before it can be redrawn.

Purge width/height parameters from hlcache_handle_retrieve/content_convert/*_convert APIs.
Fix up content handlers affected by the above change in semantics.
Ensure that browser_window_callback performs an initial reformat of its content.

svn path=/trunk/netsurf/; revision=10207
2010-03-29 22:33:21 +00:00
Daniel Silverstone
270ef59a98 Merge jmb/new-cache; r=dsilvers,rs=vince
svn path=/trunk/netsurf/; revision=10180
2010-03-28 12:56:39 +00:00
François Revel
093d9567f1 Accomodate for antique versions of libpng (as found with the BeOS R5 devkit), which either:
- don't define the png_jmpbuf macro,
- have a different name for png_set_expand_gray_1_2_4_to_8().

svn path=/trunk/netsurf/; revision=10069
2010-02-17 22:25:03 +00:00
Vincent Sanders
b3ba443c64 update png handler to not use deprecated/removed call.
improve type usage to avoid incompatible pointer type warnings on newer libpng versions.

svn path=/trunk/netsurf/; revision=9921
2010-01-28 10:11:31 +00:00
John Mark Bell
3128ec1cdc Actually handle failure to allocate bitmap structure or retrieve its data buffer pointer. I hope these longjmps are valid -- libpng's documentation is unhelpfully vague on this subject.
svn path=/trunk/netsurf/; revision=8924
2009-07-31 14:01:49 +00:00
John Mark Bell
ddeadd1c02 Merge LibCSS port to trunk.
svn path=/trunk/netsurf/; revision=8752
2009-07-23 23:05:34 +00:00
Vincent Sanders
aa26843411 Improve bitmap plotter API
svn path=/trunk/netsurf/; revision=8195
2009-06-30 13:02:23 +00:00
Michael Drake
8dfdd67e87 Make libpng image handler set opaque info.
svn path=/trunk/netsurf/; revision=6669
2009-03-02 18:24:54 +00:00
François Revel
e4fba7f577 Add missing calls to bitmap_modified(). This fixes using libpng in the BeOS port.
svn path=/trunk/netsurf/; revision=5532
2008-10-10 20:54:49 +00:00
Daniel Silverstone
6a9f156fc6 Fix format string warning error
svn path=/trunk/netsurf/; revision=5528
2008-10-10 09:50:42 +00:00
John Tytgat
2d1481fafc 'unsigned long' -> 'colour' where it made sense.
svn path=/trunk/netsurf/; revision=5459
2008-09-28 22:37:13 +00:00
John Mark Bell
385d274f5b A bunch of fixes to the libpng binding
svn path=/trunk/netsurf/; revision=5338
2008-09-15 22:45:44 +00:00
François Revel
8c2a7e23de Fix include path for libpng.
Libpng mandates using <png.h>, if it doesn't work for you, fix your OS :D
(or use -I)
See http://www.libpng.org/pub/png/libpng-1.2.5-manual.html#section-2

svn path=/trunk/netsurf/; revision=5333
2008-09-15 21:12:48 +00:00
Daniel Silverstone
d3270ed648 Add libpng support. Default to off.
svn path=/trunk/netsurf/; revision=5330
2008-09-15 20:23:02 +00:00