Building the amiga frontend for AmigaOS 3

Chris Young chris.young at unsatisfactorysoftware.co.uk
Thu Jan 6 18:57:48 GMT 2011


On Thu, 06 Jan 2011 17:49:14 +0200, Bernd Roesch wrote:

> Because Reaction is closed source and come many years after MUI for
> amiga OS 3.5 and because reaction miss lots
> features (at least on 68k) most programs use MUI GUI, because it
> offer nicer look and more features as Reaction.

This is irrelevant as far as NetSurf for OS3 is concerned.  OS3.9bb2
Reaction supports everything we need (besides some minor tweaks to
link the menu and scrollbars).  Being a web browser, it's only a few
buttons, tabs, a string gadget and a massive chunk of blank space to
render into!  This also isn't the place for a Reaction vs MUI war.

Anyway, since we're here, this is roughly what needs to be modified to
get the OS4 frontend to work on OS3.9:

* font.c
Font code uses the new-style diskfont.library bullet interface.  It
either needs to be tweaked to be the old one and the BltBitMapTags
call avoided (the latter might be more difficult than the former), or
changed entirely to use ttfengine.library or freetype2.  I have some
old code for ttfengine lying around which needs fixing up but did
generally work at some point in the past.

* plotters
P96 needs to be ripped out/avoided if either (a) P96 is not available
or (b) a <= 8-bit screenmode is in use.  This is further-reaching than
the plotters code - the aforementioned font code expects 32-bit and
the bitmaps are all in 32-bit too, so dithering and pen allocation
needs to be done.  (note this is something which needs to be done for
OS4 too; currently NetSurf OS4 won't display properly on 8-bit
screenmodes)

* gui
The already-mentioned tweaks to remove new Reaction features
(WINDOW_NewMenu needs replacing with CreateMenus/LayoutMenus etc; the
vertical scrollbar is attached using a new feature; the horizontal one
uses new scrollergclass).

* arexx
Functions need #ifdef'ing with ASM headers.

* utf8.c
Needs hardcoding to ISO-8859-1.

* misc
Littered throughout the code are new calls for allocating memory,
resources, interfaces, etc  - this all needs backporting.
application.library stuff should automagically disable, no_drag_icons
will need to default to 1 for OS3 (I think it does anyway).

That is, I think, pretty much it.

Chris



More information about the netsurf-dev mailing list