[comp.sys.apollo] ...animation

bach@USCN.BITNET (BitNet Users Of Southern Tech) (12/20/88)

  Could someone out there who has done some animation on apollo
workstations please give me some hints ?  I am attempting to
do some animated sequences on a DN4000 and I am not having much
success.  The main problem is image flicker.  I have seen some
pretty good animation sequences on the apollo, so I'm sure that
it can be done somehow.  I am using GPR and doing BLTs to display
memory. Apparently this is not the correct approach.  If anyone
has any advice, I would really appreciate it.  Source code and/or
code fragments would be of great help.

                                       Stephen O. Berger (aka "Cheese")

krowitz@RICHTER.MIT.EDU (David Krowitz) (12/21/88)

If you can manage it, what you want to do is to draw your next
frame in a bitmap in the hidden display memory rather than in
main memory and BLT it onto the display. Unfortunately, the
hidden display memory on the DN3xxx/4xxx is much smaller than
on previous machines, so you can't really draw a whole screen,
only small objects which you are going to place onto the screen.

The graphics hardware on the DN3xxx/4xxx is not all that fast
(the "C" and "E" color options) compared to the DN550/560 and
the DN660. I understand that the new "F" option color display
is much faster. Try to avoid BLT'ing whole screens -- the more
data you have to move, the worse the flickering -- it's 
frequently faster to erase only the section of the screen
where something has changed and to redraw that small section.
Take a look at the code for BZONE and STWAR in the ADUS library.
They may give you a few ideas, although they both do line
drawings, not filled-area graphics.


 -- David Krowitz

krowitz@richter.mit.edu   (18.83.0.109)
krowitz%richter@eddie.mit.edu
krowitz%richter@athena.mit.edu
krowitz%richter.mit.edu@mitvma.bitnet
(in order of decreasing preference)

tweed@apollo.COM (David Tweed) (12/22/88)

In article <8812201611.AA09712@richter.mit.edu> krowitz@RICHTER.MIT.EDU (David Krowitz) writes:
>           .... Try to avoid BLT'ing whole screens -- the more
> data you have to move, the worse the flickering -- it's 
> frequently faster to erase only the section of the screen
> where something has changed and to redraw that small section.
> Take a look at the code for BZONE and STWAR in the ADUS library.
> They may give you a few ideas, although they both do line
> drawings, not filled-area graphics.
> 
>  -- David Krowitz

I've done some hacking to BZONE, and written a similar application
myself (asteroids). These programs actually "undraw" a figure in
order to move it. That is, the figure is drawn in black in its old
position, moved, then drawn in its visible color.

The objects are stored in GPR multi- or poly-line format so that
they can be passed directly to GPR for both drawing and undrawing.
This allows you to take advantage of whatever optimizations have
been implemented in GPR. In particular, I believe that on the
DN580(-T)/590, the entire operation is handled by the graphics
hardware.

(The only things BLT'd in BZONE are the little knob on
the end of the joystick, the little tank images that tell you how
many you have left, and the toggle switch. And they don't even bother
to use hidden memory to hold them!)

                                         -- Dave Tweed

-- 
# {mit-erl,yale,uw-beaver}!apollo!tweed #    Apollo Computer Inc.    #
#      apollo!tweed@eddie.mit.edu       #    Chelmsford, MA 01824    #
#           tweed@apollo.uucp           #    617/256-6600            #
# ARPA: tweed@apollo.com      UUCP: {decwrl!decvax, mit-eddie, attunix}!apollo!tweed