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