@DATABASE RGBAevd.guide
@AUTHOR "Niels Knoop"
@(C) "Copyright © 1996 Niels Knoop"
@$VER: RGBAevd.guide 1.0 (6.7.96)
@SMARTWRAP
@MACRO _item "@{LINDENT 0}@{LINE}- @{LINDENT 2}"
@MACRO _text "@{LINDENT 0}@{LINE}"

@NODE Main "RGBAevd & RGBAevdR"
@{CODE}@{JCENTER}
@{U}RGBAevd & RGBAevdR@{UU}

ShapeShifter External Video Drivers
for 24-bit RGBA32 CyberGraphX screens
Copyright © 1996 Niels Knoop

@{" Introduction " LINK Introduction}
@{" RGBAevd      " LINK RGBAevd}
@{" RGBAevdR     " LINK RGBAevdR}

@{" Requirements " LINK Requirements}
@{" Installation " LINK Installation}
@{" Usage        " LINK Usage}

@{" Credits      " LINK Credits}
@{" Legal mush   " LINK Copyright}
@{" Author       " LINK Author}
@ENDNODE Main


@NODE Introduction "Introduction"
This archive contains two external video drivers for ShapeShifter
running on 24-bit CyberGraphX screens with pixelformat RGBA32.
They were written for and tested on the Piccolo-SD64 only, but
should work on other boards as well provided that they use the
same pixelformat.


Maybe you don't like the periodical processor load and artefacts
caused by a refreshed display and wished that ShapeShifter supported
direct access to the video memory of your graphics board in 24-bit?
Then take a look at @{"RGBAevd" LINK RGBAevd} which does just that.


On the other hand, you might have noticed that ShapeShifter's
internal CyberGraphX driver doesn't work on the Piccolo-SD64 in
24-bit anymore - apparently since PiccoSD64 1.24 changed the
pixelformat from RGB24 to RGBA32 - but would still like to use
this kind of refreshed display, preferably using your 040/060 MMU.
In this case, @{"RGBAevdR" LINK RGBAevdR} will help you.

@ENDNODE


@NODE RGBAevd "RGBAevd"
The problem with 24-bit Mac screens on the Piccolo-SD64 is that the
Mac uses the pixelformat ARGB32, while the SD64 (under CyberGraphX
since version 1.24 of PiccoSD64) uses RGBA32. A directly addressed
SD64 screen would therefore show wrong colors.


The idea behind RGBAevd is to simply shift the Mac display by one byte
in order to make the Red, Green and Blue bytes of the Mac match those
of the SD64 screen, while the unused Alphachannel bytes can be
ignored. To avoid trashing the first byte in front of the real display
memory on the SD64 which might cause fatal results, RGBAevd also
shifts the Mac display by one line and enlarges ShapeShifter's screen
and window accordingly. Look at the following figure to get the idea:

@{CODE}
Piccolo-SD64: RGBa....RGBaRGBaRGBa....RGBa
Mac-Display :        aRGBaRGBaRGB....aRGB 
@{BODY}

This trick works because the M68020 and later processors of the M68000
family (which are needed in order to run ShapeShifter anyhow) support
word and longword operations on odd addresses. However these
misaligned accesses cost some speed. In effect RGBAevd trades in
display memory bandwidth for direct access.


RGBAevd's display shares the advantages as well as the disadvantages
of direct displays in general: It avoids the periodical processor load
and artefacts caused by a refresh and renders smooth operation of
the Mac mousepointer possible, but also trashes other CyberGraphX
screens when you flip them to front unless you use a ShapeShifter
freezer utility like the one included into MultiCX by Martin Berndt.


If you don't mind the temporary artefacts of refreshed displays and
have a fast Amiga, you might want to take a look at
@{"RGBAevdR" LINK RGBAevdR} as an alternative.

@ENDNODE


@NODE RGBAevdR "RGBAevdR"
RGBAevdR offers a refreshed 24-bit display which doesn't overwrite
other screens when flipping them to front. This is actually exactly
what ShapeShifter's internal CyberGraphX driver is supposed to do,
but apparently no longer does since PiccoSD64 1.24 changed the
pixelformat to RGBA32. In fact RGBAevdR is a workaround for this
bug and uses the internal RGBA32 refresh routine of ShapeShifter,
including MMU support. It will hopefully be made obsolete soon by a
new release of ShapeShifter which solves this problem.


When using MMU-refresh with a 040 or 060 processor, RGBAevdR might
be faster than @{"RGBAevd" LINK RGBAevd}, although the visual
impression isn't as nice. I strongly suggest using the Amiga
mousepointer.

@ENDNODE


@NODE Requirements "Requirements"
In order to run RGBAevd or RGBAevdR you need:

@{_item}
An Amiga running ShapeShifter and CyberGraphX
@{_item}
ShapeShifter 3.0d or later
@{_item}
CyberGraphX (PiccoSD64 1.24 or later for the Piccolo-SD64)
@{_item}
A graphics board which supports the RGBA32 pixelformat in 24-bit
@{_text}

RGBAevdR additionally requires:

@{_item}
CyberGraphX 2.10 or later (cybergraphics.library 40.60 and up)
@{_text}

Optional, but highly recommended for use with RGBAevdR:

@{_item}
A 040 or 060 processor with MMU
@{_text}
@ENDNODE


@NODE Installation "Installation"
Simply copy RGBAevd & RGBAevdR into the "Video Drivers" drawer inside
your ShapeShifter drawer.

@ENDNODE


@NODE Usage "Usage"
In the @{B}ShapeShifter Graphics Settings@{UB} window, select @{B}24
bit@{UB} as @{B}Color Depth@{UB}, @{B}External@{UB} as @{B}Screen
Type@{UB} and either RGBAevd or RGBAevdR as @{B}External driver@{UB}.


Then press the @{B}Choose@{UB} button and select a 24-bit CyberGraphX
mode in the @{B}Screen mode@{UB} requester. If you want to modify the
display dimensions you can enter your own values next to
@{B}Size@{UB}. However, RGBAevdR doesn't support displays narrower
than the selected screenmode, and Autoscroll on oversized displays
doesn't seem to work with CyberGraphX 24-bit screens as of version
2.18. You can drag the screen to move the visual region with the
mouse while pressing the screen drag qualifier(s) as selected with
IControl, though.


When running RGBAevdR on Amigas with 68040 or 68060 processors with
MMU, the field @{B}MMU refresh@{UB} should be selected in order to
avoid refreshing unchanged areas of the screen and thus to get
reasonable speed.


The field @{B}Amiga mouse pointer@{UB} can be selected to use the
hardware cursor of the Piccolo-SD64 instead of a Mac software cursor.
This option is highly recommended for use with RGBAevdR. However, as
of ShapeShifter version 3.5, the hardware cursor always shows your
Amiga mousepointer image and thus doesn't reflect changes of the Mac
pointer like busypointers.


When you're done you might want to save your settings globally using
@{B}Save@{UB} or - if you are using ShapeShifter 3.3 or later - into
an individual project using @{B}Save As...@{UB} from the main menu.


If some settings are not suitable or a problem occurs, RGBAevd and
RGBAevdR will display an error requester telling what is wrong and
terminate.

@ENDNODE


@NODE Credits "Credits"
I would like to thank the following people:

@{_item}
Francesco Doro for great betatesting and nice e-mail conversation
about the SD64 ;-)
@{_item}
Hendrik Horak for the Piccolo-SD64 and for lending me half his A3000
@{_item}
Christian Bauer for ShapeShifter and its great EVD interface
@{_item}
Frank Mariak & Thomas Sontowski for CyberGraphX
@{_item}
Frank Wille for PhxAss
@{_text}
@ENDNODE


@NODE Copyright "Copyright"
RGBAevd & RGBAevdR are Freeware. Use them at your own risk.

@ENDNODE


@NODE Author "Author"
If you have questions, comments or bugreports you can reach me via
e-mail using the address given below.

@{CODE}
-- 
| Ciao!   /// Niels Knoop ///  e-mail:
  niels@rbg.informatik.th-darmstadt.de |
                                      --
@ENDNODE
