Reply-To: From: "Arthur" To: "DJGPP Mailing List" Subject: RE: Allegro and VESA 2.0 Date: Thu, 17 Sep 1998 16:25:18 +0100 Message-ID: <000401bde24f$605f6440$a14e08c3@arthur> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit In-Reply-To: <3600AE89.4D194557@mailexcite.com> Importance: Normal Precedence: bulk > > Can anybody give me a description of VESA? How does it > different from other > > video modes, such as 13h or ModeX? > > > > The reason that I'm asking is because my program is fine in > ModeX or 13h, but > > when I switch to a VESA 2.0 driver, the image flickers and > shutters. The > > program uses a double-buffering system that, for every animation frame: > > alwaysclears the entire buffer, redraws everything, and then > blits to the > > screen. (The problem also occurs when I'm page flipping) The > elements that are > > drawn _early_ are solid and stable, but the parts of the screen that are > > drawn_later_ are flickery and unstable. > > Hmmm. Clearing the frame before the video card can switch to the > new one...? Or not using a vsync(). Remember, drawing using VESA (esp. banked mode) is slower than Mode 13h or ModeX, so you should really include a vsync() unless 1) You have a monitor which can run at about 200Hz, or 2) most of your background is black (like in the Allegro Demo). > > Also, what is the difference between banked mode and the linear > framebuffer > > drivers? (Besides that linear is faster.) > > > > Banked mode forces you to only access a 64K chunk of video memory > at a time. Some > cards have slightly different capabilities (multiple address > space 'windows', 32K > banks, can only read from this one, can only write to that one, > and crap like > that), forcing you to adapt your routines to labourously detect > which banking > scheme is in use, and adapt your routines to switch banks when > drawing to different > areas of the screen (been there, done that, didn't enjoy). Linear > mode just lets > you access any address of video memory at any time (entire video > memory is fully > addressable at all times) (haven't done yet, probably won't > because OpenGL is more > productive). That's basically it. Always use Linear Framebuffer mode if available, but you can use readline/writeline if not. I think VESA 1.x uses banked mode only, so you should always provide a compatibility mode anyway. If you want more info, read the Allegro manual (you did do this, right) because it's explained in there. > (Note that I am not cutting up the VESA banked memory standard. I > am cutting up > video card manufacturers that all went their seperate ways, > arrogantly thinking > that their complex (or inexpensive) design is the best, screw > compatibility and > standards. Or maybe the government should force companies to only > make good > hardware...yeah...that's it...hahaha) That's Intel gone for sure. James Arthur jaa AT arfa DOT clara DOT net ICQ#15054819