Commit Graph

172 Commits

Author SHA1 Message Date
Chris Young
79c5485e27 Add tiled refresh, with tiles of max size option_redraw_tile_size. This
reduces the size of our off-screen bitmap and associated memory.
Only works with browser windows at present. History and treeviews still
have full window refresh/bitmap.
Setting the option to 0 brings back the old behaviour.

svn path=/trunk/netsurf/; revision=13468
2012-02-25 18:42:33 +00:00
Chris Young
4bb6da7cd3 Revert r13074 - doesn't actually fix the problem
svn path=/trunk/netsurf/; revision=13075
2011-10-22 14:26:56 +00:00
Chris Young
35bc321993 Fix the plotting of tiled bitmaps. EraseRect() appears to have a bug where it won't
draw anything if ymin==ymax

svn path=/trunk/netsurf/; revision=13074
2011-10-22 14:16:03 +00:00
Chris Young
02361309ed Remove gui_globals scale as no longer needed
svn path=/trunk/netsurf/; revision=11962
2011-03-10 20:07:14 +00:00
Chris Young
d12ce6b075 Fix crash when launching NetSurf twice
svn path=/trunk/netsurf/; revision=11961
2011-03-10 00:05:37 +00:00
Chris Young
f892e59d76 Direct rendering. Testing only; has problems with inline image placement, grey
background for all text, won't work with Cairo renderer, may crash with certain
gfx lib operations (AreaFill).  However, seems to be much faster in 16-bit mode than
off-screen buffered rendering.

svn path=/trunk/netsurf/; revision=11913
2011-03-05 14:36:55 +00:00
Chris Young
912b3bcde8 Enable selection of rendering engine (graphics.library, Cairo) at runtime, if we're
compiled with Cairo support.

svn path=/trunk/netsurf/; revision=11912
2011-03-05 11:42:31 +00:00
Chris Young
c9f25d5e4a Don't plot 0 size bitmaps
svn path=/trunk/netsurf/; revision=11867
2011-02-28 23:33:22 +00:00
Chris Young
31bd1df6f9 Stop mix'n'match p96/gfx.lib drawing, remove ami_clg
svn path=/trunk/netsurf/; revision=11832
2011-02-26 22:24:41 +00:00
Michael Drake
94e7b44ebc Pass clip rect to clip plotters as struct. Simplify clip rect handling in debug window code. Pass clip rect to select menu as struct.
svn path=/trunk/netsurf/; revision=11683
2011-02-14 22:05:39 +00:00
Chris Young
90fb7362c5 Use base type for gfxbase
svn path=/trunk/netsurf/; revision=11249
2011-01-07 18:21:01 +00:00
John Mark Bell
d83f683e96 Sprinkle some #ifdef __amigaos4__ around
svn path=/trunk/netsurf/; revision=11230
2011-01-06 23:17:17 +00:00
Chris Young
d16e3161ad Fix full Cairo build
svn path=/trunk/netsurf/; revision=10878
2010-10-10 09:24:19 +00:00
John Mark Bell
6173bb0e6c Merge treeview-redux to trunk
svn path=/trunk/netsurf/; revision=10865
2010-10-05 19:14:46 +00:00
Chris Young
73db706295 Revert accidental change which was causing corruption down the right-hand side of
images

svn path=/trunk/netsurf/; revision=10723
2010-08-30 12:25:38 +00:00
Chris Young
4479da540f Debug plotters. It appears that the odd slowness on some sites (eg. sourceforge.net)
can be eliminated by setting option_cache_bitmaps to 2, so make that the default.

svn path=/trunk/netsurf/; revision=10722
2010-08-30 11:00:24 +00:00
Chris Young
138d0754c9 Font scaling - scaling now works for printing, need 2nd attempt at implementing it for
browsing.

svn path=/trunk/netsurf/; revision=9496
2009-08-29 14:24:47 +00:00
Chris Young
3295d71a2f First attempt at Amiga printing support. Doesn't quite work - a column on the left
will print, but the rest of the page is an unexpected pastel pink.

svn path=/trunk/netsurf/; revision=9410
2009-08-23 15:59:41 +00:00
Chris Young
6030a12341 Revert back to creating a new clip region rather than reusing the previous one. This
fixes the long-standing incremental_reflow problem, as apparently ClearClipRegion
can't cope with the frequency of calls it gets with this switched on.

svn path=/trunk/netsurf/; revision=9333
2009-08-17 11:48:56 +00:00
John Mark Bell
2565a37a52 Refactor text plotter and other font functions to remove dependency on CSS.
svn path=/trunk/netsurf/; revision=8641
2009-07-21 10:59:53 +00:00
Michael Drake
8365d46eb7 Rename TRANSPARENT to NS_TRANSPARENT to avoid clash on Windows. By MarkieB.
svn path=/trunk/netsurf/; revision=8513
2009-07-14 10:57:07 +00:00
Vincent Sanders
86232d72a6 next round of plotter refactor
svn path=/trunk/netsurf/; revision=8512
2009-07-14 10:03:58 +00:00
Vincent Sanders
680298e61c plotters line refactor
svn path=/trunk/netsurf/; revision=8446
2009-07-10 18:36:49 +00:00
Chris Young
801ef751af Move all the layers code into plotters.c and refactor to use gui_globals structure
Purge option_direct_render

svn path=/trunk/netsurf/; revision=8425
2009-07-09 18:52:55 +00:00
Chris Young
e580428738 Fix compilation
svn path=/trunk/netsurf/; revision=8400
2009-07-08 22:32:57 +00:00
Vincent Sanders
f9ecd56f62 ploter refactor of rectangle handling
svn path=/trunk/netsurf/; revision=8399
2009-07-08 22:04:40 +00:00
Chris Young
651228e64d Migrate plotters to use a gui_globals pointer rather than RastPort.
svn path=/trunk/netsurf/; revision=8378
2009-07-07 19:28:34 +00:00
Vincent Sanders
0ade453958 Refactor fill plotter to take a style
svn path=/trunk/netsurf/; revision=8332
2009-07-05 20:10:17 +00:00
Chris Young
0d879c2e7f fix warnings
svn path=/trunk/netsurf/; revision=8316
2009-07-04 19:12:56 +00:00
Vincent Sanders
1165edf662 remove redundant clg call
svn path=/trunk/netsurf/; revision=8240
2009-07-01 13:53:06 +00:00
Vincent Sanders
aa26843411 Improve bitmap plotter API
svn path=/trunk/netsurf/; revision=8195
2009-06-30 13:02:23 +00:00
Chris Young
0e880815f7 Custom apha-supporting backfill hook for tiled bitmaps that require it.
svn path=/trunk/netsurf/; revision=7553
2009-05-26 22:39:23 +00:00
Chris Young
772bbec9e8 Super whizzy fast shiny new tile plotter
Massively speeds up www.amigaimpact.org, slight improvement on other sites.
Unfortunately alpha plotting on tiled btimaps is broken again (makes amigaworld.net
difficult to read).
May need to reimplement the old tile plotter for alpha bitmaps only, or write my own
alpha-supporting backfill hook

svn path=/trunk/netsurf/; revision=7550
2009-05-26 19:02:51 +00:00
Chris Young
14a6c56748 CompositeTags() was clipping one pixel too close.
svn path=/trunk/netsurf/; revision=7432
2009-05-07 22:40:52 +00:00
Chris Young
e7cbf49fb9 Some optimisations, makes page rendering much quicker at least on OS4.1.
svn path=/trunk/netsurf/; revision=7431
2009-05-07 18:40:33 +00:00
Chris Young
ed40acf873 Don't bother plotting bitmaps that are completely out of the clip zone.
svn path=/trunk/netsurf/; revision=7401
2009-05-05 19:51:25 +00:00
Chris Young
16d7252eac Sync full Cairo build with GTK Cairo plotters
(this was in the previous commit with a copy'n'paste error)

svn path=/trunk/netsurf/; revision=7022
2009-04-01 17:40:09 +00:00
Chris Young
853793eaa8 Remove option_quick_text (local charset text printing)
svn path=/trunk/netsurf/; revision=7021
2009-04-01 17:36:18 +00:00
Chris Young
0bdcf4b8e2 Implement thumbnail creation
svn path=/trunk/netsurf/; revision=6736
2009-03-08 17:41:24 +00:00
Chris Young
cbae6a91dd Stop local history from crashing, display mostly works (no thumbnails and offset wrong
to window), no event handling other than closing the window.

svn path=/trunk/netsurf/; revision=6730
2009-03-08 12:52:44 +00:00
Chris Young
caf41b6b19 Stop images disappearing when they are half-way off the screen.
svn path=/trunk/netsurf/; revision=6621
2009-02-25 20:37:41 +00:00
Chris Young
10d3cff743 Fix memory leak and make freeing bitmaps that might be cached a little safer.
svn path=/trunk/netsurf/; revision=6620
2009-02-25 20:09:33 +00:00
Chris Young
781405d195 Move native bitmap creation/caching routine into bitmap.c
svn path=/trunk/netsurf/; revision=6619
2009-02-25 19:56:04 +00:00
Chris Young
a61d0fa753 The native bitmap caching was eating memory, this should be correct now.
svn path=/trunk/netsurf/; revision=6616
2009-02-25 00:26:46 +00:00
Chris Young
2f36c12acd Optimise tile plotter
svn path=/trunk/netsurf/; revision=6615
2009-02-24 23:47:58 +00:00
Chris Young
a588aa92c9 Enable/disable caching of native bitmaps in gfx board mem
svn path=/trunk/netsurf/; revision=6393
2009-02-07 10:45:58 +00:00
John Tytgat
fbf6d4cd41 - Constify parameters of struct plotter_table::polygon and struct plotter_table::path
- riscos/save_draw.c(ro_save_draw_plotters): Make it static.
- desktop/save_pdf/pdf_plotters.c(pdf_plot_path): fix broken implementation (coordinates path were wrong, no clip/text mode update, transformation matrix was overwritten); only update fill and/or 
stroke color when fill and/or stroke is done.
  (pdf_begin): disable compression when PDF_DEBUG is set

svn path=/trunk/netsurf/; revision=6361
2009-02-03 01:27:54 +00:00
Chris Young
7098d2850d Fix screen clears
svn path=/trunk/netsurf/; revision=6026
2009-01-10 21:32:12 +00:00
Chris Young
96c314750f More efficient layers clipping
svn path=/trunk/netsurf/; revision=5945
2008-12-29 01:18:53 +00:00
Chris Young
e56aabc998 Complete set of Cairo plotters (from gtk_plotters.c).
All except the polygon plotter - as the graphics.library implementation has problems -
are disabled, but can be enabled by defining NS_AMIGA_CAIRO_ALL.

Using only the Cairo plotters is much slower than using only the graphics.library
plotters (especially clipping which is adding several seconds to rendering with Cairo)
and the default "mixed" Cairo state is the recommended configuration for now.

svn path=/trunk/netsurf/; revision=5944
2008-12-29 00:52:19 +00:00
Chris Young
605cf900b4 Some bitmap caching - not making much difference and using up a lot of gfx mem, may
need to make this a configurable option.

svn path=/trunk/netsurf/; revision=5943
2008-12-28 15:55:52 +00:00
Chris Young
495fa6c648 Minor changes for Amiga Cairo build
svn path=/trunk/netsurf/; revision=5940
2008-12-28 12:24:18 +00:00
Chris Young
fcf46a91b6 SVG support for Amiga version using libsvgtiny and libcairo
Cairo plotter for arcs

Cairo support is experimental and can be enabled with option NETSURF_AMIGA_USE_CAIRO
For some reason linking against shared objects breaks forms.

svn path=/trunk/netsurf/; revision=5939
2008-12-28 00:41:35 +00:00
Chris Young
47e12b16f8 Missed one
svn path=/trunk/netsurf/; revision=5937
2008-12-27 18:39:16 +00:00
Chris Young
9b79c1c6a4 Handle opaqueness a bit
Appears that Composite() has the same problem as BitMapScale() in that trying to scale
to a negative co-ordinate destination doesn't work.  Still seems a bit faster after
adding the additional blit, although www.bbc.co.uk scrolls at a snail's pace since
adding alpha blits.


svn path=/trunk/netsurf/; revision=5936
2008-12-27 18:34:55 +00:00
Chris Young
b4e80b4d3a Respect alpha channel in bitmaps, and use Composite() instead of BitMapScale() under
OS4.1 (potentially a little quicker).

svn path=/trunk/netsurf/; revision=5925
2008-12-26 18:36:53 +00:00
Chris Young
b682523066 Minor improvements to output.
svn path=/trunk/netsurf/; revision=5905
2008-12-13 23:20:49 +00:00
Chris Young
5737ea10b2 Fix bitmap tile plotter so tiled bitmaps continue out of the inital visible area.
svn path=/trunk/netsurf/; revision=5899
2008-12-10 23:31:33 +00:00
Chris Young
2f4beda48c Complete (but quite minimal at the moment) context menu implementation for AmigaOS:
Links, objects and upload file boxes have their own menu item or submenu.

Context menus can be enable/disabled and be made "sticky" with the following options:
context_menu
sticky_context_menu

Seperated clipboard related code out to clipboard.c to make it easier to maintain and
add the ability to copy URLs to the clipboard.  Copying images to the clipboard will
come later.


svn path=/trunk/netsurf/; revision=5629
2008-10-25 16:37:08 +00:00
Chris Young
307b88e934 Fixed bitmap tile plotter
svn path=/trunk/netsurf/; revision=5601
2008-10-19 13:44:01 +00:00
Chris Young
946115fa76 Stop scaled bitmaps from disappearing completely when the top of the image is
partially off-screen.  Hopefully this also fixes some system freezes caused by this
code when run under OS4.1 on the SAM440.

svn path=/trunk/netsurf/; revision=5455
2008-09-28 14:39:02 +00:00
Chris Young
713d3d365a Experimental treeview implementation using listbrowser.gadget.
svn path=/trunk/netsurf/; revision=5447
2008-09-27 20:55:11 +00:00
Chris Young
7d93524509 Fix screen clear bug - now plain text files are readable.
svn path=/trunk/netsurf/; revision=5379
2008-09-20 14:06:28 +00:00
Chris Young
277262bf46 Added support for scaling bitmaps, filled polygons, filled circles and clipping.
Fixes major display issues with eg. www.bbc.co.uk amongst others.

svn path=/trunk/netsurf/; revision=5221
2008-08-30 16:57:35 +00:00
Chris Young
889648aa4d Convert UTF-8 text to local charset before printing to screen
svn path=/trunk/netsurf/; revision=5184
2008-08-23 16:17:23 +00:00
Chris Young
f071afe243 Code cleanup.
svn path=/trunk/netsurf/; revision=5167
2008-08-21 21:42:48 +00:00
Chris Young
61294f493e Close fonts properly and default back to initial RastPort font.
svn path=/trunk/netsurf/; revision=5136
2008-08-17 16:22:40 +00:00
Chris Young
f71f8f82a1 Implemented line styles and widths
svn path=/trunk/netsurf/; revision=5131
2008-08-15 18:49:14 +00:00
Chris Young
058fcac225 Added code to set correct font.
svn path=/trunk/netsurf/; revision=4986
2008-08-10 09:57:41 +00:00
Chris Young
82cc44fc4e Corrected bitmap plotter RGB format.
svn path=/trunk/netsurf/; revision=4949
2008-08-07 19:05:44 +00:00
Chris Young
394263bb2f Basic plotter functions and support code for the plotters.
svn path=/trunk/netsurf/; revision=4948
2008-08-07 18:44:28 +00:00
Chris Young
26203b2215 Initial Amiga port files, mostly empty stub functions.
svn path=/trunk/netsurf/; revision=4864
2008-08-02 14:31:32 +00:00