home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / sys / atari / st / tech / 6304 < prev    next >
Encoding:
Internet Message Format  |  1992-12-16  |  3.0 KB

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