delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/08/06/01:19:38

From: Shawn Hargreaves <Shawn AT talula DOT demon DOT co DOT uk>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: [Q]: Allegro scrolling question
Date: Sun, 3 Aug 1997 12:40:40 +0100
Organization: None
Distribution: world
Message-ID: <pTK5AFA44G5zEwYl@talula.demon.co.uk>
References: <33E17022 DOT 102F AT cat DOT csiro DOT au>
NNTP-Posting-Host: talula.demon.co.uk
MIME-Version: 1.0
Lines: 27
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Jonathon Ralston writes:
>Is it possible to scroll only *part* of the screen while in an SVGA
>mode, e.g., a 640 x 400 window?  I noticed that ex19.c uses a mode X
>modex_split type function.  Does this mean that the split screen
>text/scrolling only exists in mode X?  Is there a version of
>scroll_screen() that scrolls only part of the screen, or a BITMAP
>buffer?

Allegro only supports this split-screen functionality in mode-X. It is
done by setting the VGA line compare registers (port 0x3D4, indexes
0x18, 0x7 and 0x9), which are supported by some SVGA chipsets but don't
work reliably on all hardware. VESA doesn't provide any way of accessing
this feature, so I can't see any way to implement it in SVGA modes.

If you want to try using the VGA register writes, edit modex.c, find the
function split_modex_screen(), and delete the check:

   if (gfx_driver != &gfx_modex)
      return;

That will make the function work in SVGA on some cards, but be warned:
your mileage will vary from one graphics card to another...


--
Shawn Hargreaves - shawn AT talula DOT demon DOT co DOT uk - http://www.talula.demon.co.uk/
Beauty is a French phonetic corruption of a short cloth neck ornament.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019