home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!mcsun!uknet!gdt!aber!hrs
- From: hrs@aber.ac.uk (Herbert Martin Sauro)
- Newsgroups: comp.sys.atari.st.tech
- Subject: Re: Sending objc_draw to a memory buffer rather than screen
- Message-ID: <1992Dec11.094743.20421@aber.ac.uk>
- Date: 11 Dec 92 09:47:43 GMT
- References: <memo.794901@cix.compulink.co.uk>
- Organization: University of Wales, Aberystwyth
- Lines: 54
-
- In article <memo.794901@cix.compulink.co.uk> apelled@cix.compulink.co.uk writes:
- >
- >In article <1992Dec7.171606.23964@aber.ac.uk>, hrs@aber.ac.uk (Herbert Martin Sauro) writes:
- >>I'm trying to write a scrollable list box. I've gone through a number of
- >>attempts. The best one so far was blitting n-1 of the entries in the list
- >>and writing the nth item using objc_draw as the list is scrolled.
- >>The trouble with this was if
- >>the user scrolled more than one item at a time this method no longer worked
- >>and instead the whole list box had to be redrawn (i.e using objc_draw)
- >>at the new position - which makes for flickering and it's slow.
- >>If the list box only moves one item at a time
- >>the n-1 blit method works a treat and without any flicker -- the list
- >>can also scroll pretty fast.
- >
- > Can't you vsync ? And what's wrong with a window ?
-
- The trouble with using a window is that one doesn't recveive instant feedback
- from the slider as its draged etc. so that the window contents aren't
- updated until after the slider has finished moving.
-
- >
- >>I'm now thinking of another method, this time to hold the entire list
- >>(or at least the section that is being displayed) in a memory buffer
- >>and as the list is scrolled just blit the appropriate section out to
- >>the screen. The trouble I'm having is how do I get such a list into
- >>a memory buffer in the first place. It's a shame that one can't redirect
- >>the output from the objc_draw command to a memory buffer rather than
- >>the screen (or can one?). So the question is, how can one store dialogs,
- >>sections of object trees etc in memory (as bit maps I mean) so that they
- >>can be blitted out to the screen at will?
- >
- > Yes you can redirect objc_draw() output by changing the screen physical
- >address. Of course it won't speed anything up, in fact it'll be slower plus
- >you'll soak up RAM. Xcontrl list boxes scroll o.k with a decent accelerator.
- >
- > Adam.
-
- In Xcontrol one has to implement one own list boxes, the only related
- calls that Xcontrol suppliy (as far as I can tell) are slider controls,
- you have to build your own list box.
-
- One could redirect objc_draw on to an alternative logical screen (I'd
- forgotten that one), but it takes up large amounts of RAM (as you mention).
-
- Actually I have a question about logical screens, I know that all
- drwing is done on the logical screen but where do vro_cpyfm blits
- come from, the logical or physical screen?
-
- Herb
- --
- /******************************************************************************
- Herbert Sauro e-mail: hrs@aber.ac.uk
- Biological Sciences phone: +44 970 622353
- Univesity College of Wales
-