Commit Graph

157 Commits

Author SHA1 Message Date
Chris Young
5ac9c7128a allow font anti-aliasing to be switched off in true-colour modes 2012-08-12 11:30:44 +01:00
Chris Young
59784ba852 fix mask 2012-08-11 17:19:54 +01:00
Chris Young
7c9ac8980f use minterm (ABC|ABNC|ANBC) only when necessary 2012-08-10 18:35:01 +01:00
Chris Young
2364d68367 avoid scaled images getting incorrect mask 2012-08-10 18:30:01 +01:00
Chris Young
bc5918ebbc allocate our bitmaps as BMF_DISPLAYABLE as this can improve performance when blitting to the screen 2012-08-09 22:31:10 +01:00
Chris Young
e4d2677c80 first attempt to create our own mask of only wholly transparent pixels. 2012-08-09 21:59:47 +01:00
Chris Young
0d8aca4f12 use abstracted function 2012-08-07 21:22:51 +01:00
Chris Young
391d483c9d expose function to get current screen palette-mapped status 2012-08-07 21:03:42 +01:00
Chris Young
9fac1daff4 ...or it might just crash. Will consider a hybrid mode, as palette-mapped images do not display correctly when blitted to a 16- or 32-bit screen. 2012-08-07 00:07:37 +01:00
Chris Young
a262507b3a If using the gfx.lib true-colour plotters on a 16-bit screenmode, allocate a 16-bit off-screen bitmap instead of a 32-bit one. This _should_ make things a little quicker in that scenario. 2012-08-07 00:00:04 +01:00
Chris Young
0ce133099b fix true colour mode 2012-08-06 19:41:34 +01:00
Chris Young
6ceb8ca9eb fix depth detection 2012-08-06 19:40:51 +01:00
Chris Young
8c6dab520d misc 2012-08-05 23:51:59 +01:00
Chris Young
1ef7336f22 revert begin/endrefresh image avoidance - this isn't the cause of the simplerefresh damage region deadlock 2012-08-05 23:06:01 +01:00
Chris Young
6d602b103e release the pen if it couldn't be added to a list. 2012-08-05 23:01:03 +01:00
Chris Young
b777549cc2 avoid crash if pen list is not set 2012-08-05 22:59:09 +01:00
Chris Young
ff8d7d974c Avoid redrawing palette-mapped images during BeginRefresh/EndRefresh (ie. SimpleRefresh damage redraw) as one of the DataTypes functions are causing an Intuition deadlock. 2012-08-05 22:29:35 +01:00
Chris Young
82c4ea7686 add to list, and release pens 2012-08-05 21:29:57 +01:00
Chris Young
59af85e0b5 disable mask for now, causing colourisation problems 2012-08-05 16:02:25 +01:00
Chris Young
803970589b attempt blit through mask 2012-08-05 15:55:02 +01:00
Chris Young
c359b9400b Palette-mapped bitmap support 2012-08-05 15:16:02 +01:00
Chris Young
55c08431ee Fix build 2012-08-05 11:37:27 +01:00
Chris Young
d577a48bb7 Abstract pen obtain/release and structure so we can add these to a physical browser window's list 2012-08-05 11:28:48 +01:00
Chris Young
337b0f6724 Allow forcing palette-mapped mode by setting cairo_renderer:-1 2012-08-05 11:04:17 +01:00
Chris Young
34154ebb99 Disable anti-aliasing for palette-mapped modes 2012-08-05 10:48:36 +01:00
Chris Young
1ceced6e67 Free bitmap using correct function 2012-08-05 10:21:39 +01:00
Chris Young
5a055e3b05 stop crashing 2012-08-05 10:07:26 +01:00
Chris Young
0f1685f131 add palette-capable OPen function 2012-08-05 09:55:01 +01:00
Chris Young
400d02bc24 Convert the rest of plotters.c to use palette-mapped capable colour selection 2012-08-05 09:51:48 +01:00
Chris Young
eed37af751 Fix colours - rectangles now printing correctly. Fix an 'early' crash caused by unfriendly bitmaps. Text needs fixing. There is also a 'late' crash which makes it unusable. 2012-08-04 23:55:02 +01:00
Chris Young
dad8065f0a move text colour settings into plotters.c, and use palette-map capable function 2012-08-04 18:05:26 +01:00
Chris Young
6f64713977 alloc off-screen bm as friend of screen bm 2012-08-04 17:46:56 +01:00
Chris Young
fce7026484 Attempt to draw palette-mapped rectangles.
Problems:
 1. The DrawInfo structure is returning a depth of 8 for >8-bit screens
 2. Colours are wrong (probably related to our off-screen rendering mechanism)
 3. Pens obtained through ObtainBestPenA() are never freed - we need to keep track of them and somehow work out when it is best to free them.
2012-08-04 16:45:05 +01:00
Vincent Sanders
1490b52a6b NetSurf options rework (a=vince r=daniels,jmb)
svn path=/trunk/netsurf/; revision=13548
2012-03-22 09:34:34 +00:00
Chris Young
3e77ceeb81 allow both x and y dimensions of redraw tiles to be configured
svn path=/trunk/netsurf/; revision=13502
2012-02-29 19:09:55 +00:00
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