Commit Graph

179 Commits

Author SHA1 Message Date
Chris Young
281fe7674c Skip setting the pen in the RastPort if it is already set to that pen
This captures the scenario when the RGBA value has changed but graphics.library has picked the same pen.
2016-03-23 23:18:05 +00:00
Chris Young
4b2ac84233 Make struct bitmap private to bitmap.c 2016-03-22 19:26:36 +00:00
Chris Young
bd663be927 Apparently setting pens is a strangely complex process, so avoid it. 2016-03-22 18:45:20 +00:00
Chris Young
2e958f4a4d Fix OS3 button disabling
Testing reveals OS3's button.gadget doesn't support OM_GET for GA_Disabled.
In addition, we fix OS4's boolean comparisons to ensure we only check against FALSE and !FALSE
2016-02-29 23:06:10 +00:00
Chris Young
5c8dccd5f6 When forcing 32-bit render mode, don't create the BitMaps as friends of the screen BitMap.
This fixes a system freeze on OS4
2016-01-25 18:41:50 +00:00
Chris Young
c0d031bf73 Make the palette-mapped state relate to the rendering layer rather than globally.
This means we can still render in 32-bit mode internally when the destination isn't the screen.
NB: bitmap_render is currently freezing when the screen is in palette-mapped mode (old bug, pre-dates this change), so for now we skip this routine in that scenario.
2016-01-25 00:01:55 +00:00
Chris Young
452d8ce512 Use itempools for storing our pen locks 2016-01-24 00:00:27 +00:00
Chris Young
b3aa313e84 misc amiga fixes re font plotting 2016-01-17 23:40:50 +00:00
Chris Young
46f181b348 More font-related tidy-up 2016-01-16 00:00:57 +00:00
Chris Young
6ad939b5a6 Make font engine selection bit more logical 2016-01-15 19:37:21 +00:00
Chris Young
f5dc180105 Use layers.library for bitmap tiling on OS3
This solves the worst of the rendering problems on that platform.
2016-01-14 00:11:48 +00:00
Chris Young
a73d53845c Fix MinTerm defines for SDK 53.29 2015-09-01 18:02:32 +01:00
Chris Young
a2edd98c19 Force usage of friend BitMaps on OS3 when on high/truecolour screens.
AreaInfo buffer doesn't need to be in chip mem.
2015-08-16 23:03:54 +01:00
Chris Young
9c2fbde917 Put the memory areas, rather than the structures, into chip RAM as required. 2015-08-16 12:48:06 +01:00
Chris Young
7c14bff469 TmpRas should be in chip mem for OS3/AGA 2015-08-16 12:41:21 +01:00
Chris Young
45171214ed Add an option to toggle usage of a friend BitMap for our off-screen rendering buffer (OS3 only).
Defaults to OFF, which works everywhere, but can be switched on for performance benefits when using RTG.
2015-08-15 16:42:52 +01:00
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
Chris Young
ad779dc38a Revert "Attempt to avoid a crash in ami_plot()"
This reverts commit e64d48980e.
2015-04-27 18:26:58 +01:00
Chris Young
e64d48980e Attempt to avoid a crash in ami_plot() 2015-04-25 23:04:56 +01:00
Chris Young
c8caf08ef1 As the content interface is now doing the scaling, we render to a native BitMap and then copy that to the RGBA32 bitmap buffer without re-scaling.
The native BitMap is currently discarded and will be re-created when it is displayed.
2015-04-25 13:13:30 +01:00
Vincent Sanders
fb0bd79944 update amiga frontend to use bitmap operation table 2015-04-16 22:36:29 +01:00
Chris Young
81f6cd2074 Correct the screen depth check for setting friend bitmaps.
Add some comments because using friend bitmaps in NetSurf causes problems under OS4.
2015-03-29 23:37:23 +01:00
Chris Young
db91442304 Remove branches that can't be taken under OS3
Micro-optimise these for OS4.1
Remove dummy compositing defines from os3support.h
2015-03-01 11:50:20 +00:00
Chris Young
947c466c4b Split plotting and widthing functions up 2015-02-28 13:01:16 +00:00
Chris Young
6c7a3c3a73 Clear the window using the BackFill hook 2015-02-13 18:34:08 +00:00
Chris Young
3dc8de9be2 Check for NULL 2015-02-12 23:18:41 +00:00
Chris Young
26a9c4fa07 Avoid RectFilling a 0 size area 2015-02-11 18:24:51 +00:00
Chris Young
36bc32b87b Re-disable P96 on OS3 pending a fix 2015-02-03 23:58:35 +00:00
Chris Young
32cd4abfd5 Reinstate the old (non-backfill) bitmap tiler for OS3 2015-02-03 00:24:03 +00:00
Chris Young
a7b866e824 Always use a friend bitmap on OS3 2015-02-02 23:45:49 +00:00
Chris Young
25a4cce542 Experimentally enable P96 on the OS3 build 2015-02-02 18:53:16 +00:00
Chris Young
852527a12f Ensure we are setting colours in the correct RastPort 2015-02-02 18:48:45 +00:00
Chris Young
2d157857e1 Revert shared pens support to previously-working state 2015-02-02 18:28:21 +00:00
Chris Young
7d41e04b61 We don't need to use P96 for RectFill 2015-02-02 18:10:43 +00:00
Chris Young
21f142a7fa Friend the screen bitmap for <= 8-bit modes, but only on OS3 as this causes OS4 to freeze 2015-02-02 00:32:34 +00:00
Chris Young
a4dbb87a76 Fix another instance of BltMaskBitMapRastPort potentially being called with a NULL bltmask 2015-02-01 11:08:05 +00:00
Chris Young
f514595ccf Don't allocate our off-screen render area as BMF_DISPLAYABLE, as it is never displayed.
Befriend the screen BitMap but only if we're 32-bit on both.
2015-01-31 22:14:03 +00:00
Chris Young
2544f60ae0 Set the obtained pen in our node so we can release it later. 2015-01-31 21:27:04 +00:00
Chris Young
6389b0f7d6 Ensure on OS3 we don't try to create a BitMap with a depth of more than 8 2015-01-31 20:14:09 +00:00
Chris Young
9ac9866521 Correct calling usage of BltMaskBitMapRastPort
Thanks to Matthey for the debugging
2015-01-31 20:01:35 +00:00
Chris Young
4f98fd5925 Add missing headers 2015-01-20 20:51:52 +00:00
Chris Young
e3af7f3343 Abstract P96 functions away so we can decide what to use at run-time.
This allows us to avoid opening P96 on OS4.1FE in future, and not require it to be installed on OS3.
2015-01-20 20:36:14 +00:00
Chris Young
2b9df1b2cd Remove some p96 usage 2015-01-20 00:39:32 +00:00
Chris Young
0c526662b3 Minor OS3 fixes 2015-01-19 20:50:06 +00:00
Chris Young
2eb41ed77b More OS3 fixes 2015-01-18 21:11:00 +00:00
Chris Young
24bf863522 Fix warnings 2014-11-10 23:38:59 +00:00
Vincent Sanders
0b64df140c Update amiga frontend for split operation table header changes 2014-10-16 22:33:44 +01:00
Chris Young
b1f67dab31 Remove Cairo from AmigaOS frontend. 2014-05-03 16:38:58 +01:00
Chris Young
5bb5e2667d Change the scope of some variables picked up by cppcheck, minor reformatting 2014-04-05 23:34:51 +01:00
Chris Young
ba5bae389b Fix some cppcheck variableHidingTypedef warnings 2014-04-05 20:26:40 +01:00