home *** CD-ROM | disk | FTP | other *** search
/ Executor 2.0 / executorv2.0.iso / pc / dos / extra / docs / maillist / text / archive.95 / text6021.txt < prev    next >
Encoding:
Internet Message Format  |  1996-03-31  |  3.1 KB

  1. Received: from sloth.swcp.com (sloth.swcp.com [198.59.115.25]) by nacm.com (8.6.10/8.6.9) with ESMTP id IAA12071 for <executor@nacm.com>; Thu, 26 Oct 1995 08:35:56 -0700
  2. Received: from iclone.UUCP (uucp@localhost) by sloth.swcp.com (8.6.9/8.6.9) with UUCP id JAA21439; Thu, 26 Oct 1995 09:35:46 -0600
  3. Received: from gwar.ardi.com by mailhost  with smtp
  4.     (nextstep Smail3.1.29.0 #11) id m0t8UHb-000YcBC; Thu, 26 Oct 95 09:31 MDT
  5. Received: by gwar.ardi.com (linux Smail3.1.28.1 #5)
  6.     id m0t8UHa-000GOwC; Thu, 26 Oct 95 09:31 MDT
  7. Message-Id: <m0t8UHa-000GOwC@gwar.ardi.com>
  8. Date: Thu, 26 Oct 95 09:31 MDT
  9. From: mat@ardi.com (Mat Hostetter)
  10. To: Ben Lindstrom <mouring@netnet.net>
  11. Cc: executor@nacm.com
  12. Subject: Re: Linux + SVGALIB
  13. In-Reply-To: <Pine.SUN.3.91.951025220845.6729A-100000@netnet1.netnet.net>
  14. References: <Pine.SUN.3.91.951025171554.10970D-100000@netnet1.netnet.net>
  15.     <Pine.SUN.3.91.951025220845.6729A-100000@netnet1.netnet.net>
  16. Sender: owner-paper@nacm.com
  17. Precedence: bulk
  18.  
  19. >>>>> "Ben" == Ben Lindstrom <mouring@netnet.net> writes:
  20.  
  21.     Ben> Please go through your code and find places where the screen
  22.     Ben> in being updated (hopefully they are in one common place. =).
  23.  
  24. Here's the problem: many programs (mostly games) which people run
  25. under Executor/svgalib bypass QuickDraw and write directly to screen
  26. memory.  We have no way of knowing when they will modify the screen.
  27.  
  28. The svgalib docs suggest that Executor will be suspended during a
  29. console switch:
  30.  
  31.     void vga_runinbackground( int stat )
  32.         Enable/disable background running of a graphics program
  33.         (1 = enable). Normally, the program is suspended while
  34.         not in the current virtual console. A program can only
  35.         safely run in the background if it doesn't do any video
  36.         access during this time.
  37.  
  38. Perhaps the SIGIO we get from mouse motion wakes us up and Executor
  39. proceeds to write to the screen at a bad time?  Or perhaps the
  40. documentation is wrong?
  41.  
  42. The svgalib docs also discourage the use of the function I believe you
  43. are advocating:
  44.  
  45.     int vga_oktowrite()
  46.         Indicates whether the program is in the console currently
  47.         visible on the screen, that is, whether it is OK to write
  48.         to video memory (if running in the background has been allowed
  49.         with the function above). Note that this is not entirely
  50.         safe, since a console switch interrupt may occur during a
  51.         video operation. [best to avoid this function]
  52.  
  53.     Ben> At least if you can figure out if your are doing massives
  54.     Ben> amount of screen graphics...lock the VT terminal focus.  =)
  55.  
  56. I think your suggestion is a good one, even if it won't work for all
  57. programs we emulate.  I can lock the vc around where Executor itself
  58. modifies screen memory.  I wonder if locking the vc when we don't even
  59. own the vc causes our process to stop until we have regained the vc?
  60.  
  61. We do hardward accelerated rect fills under svgalib...I wonder if
  62. switching vc's after such an operation has been started could cause
  63. problems.
  64.  
  65. I am also concerned that switching vc's to X windows will cause
  66. problems because Executor still owns the mouse and keyboard devices.
  67. Hmmm.
  68.  
  69. -Mat
  70.  
  71.