delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/01/03/19:08:20

From: "A. Jans-Beken" <jansb000 AT wxs DOT nl>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Very fast allegro blitting
Date: Mon, 03 Jan 2000 23:56:44 -0800
Organization: World Access
Lines: 31
Message-ID: <3871A7BC.F317063F@wxs.nl>
References: <386A9193 DOT 124D022D AT ozemail DOT com DOT au> <84q027$mg2$1 AT the-fly DOT zip DOT com DOT au>
NNTP-Posting-Host: vl0874-1.dial.wxs.nl
Mime-Version: 1.0
X-Trace: reader2.wxs.nl 946940197 1668104 195.121.203.106 (3 Jan 2000 22:56:37 GMT)
X-Complaints-To: abuse AT wxs DOT nl
NNTP-Posting-Date: 3 Jan 2000 22:56:37 GMT
X-Mailer: Mozilla 4.7 [en-gb] (Win98; I)
X-Accept-Language: en
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

SimonK wrote:

> The blit function is pretty fast, damn thing is all in asm i think. I
> wouldn't bother rewriting it.

In this case a low-resolution screen is used, and perhaps there is room in
the video memory for an alternate screen. I have understood that allegro
supports video-cards with hardware-acceleration, and blitting from
video-memory to video-memory (done by accelerated video hardware) should be
considerable faster then the build-in blit_from_memory_to_video_memmory
function.

A second idea that I once proposed in this:

When doing animations with sprites or bitmaps:
1 Create a BITMAP
2 Draw the OLD situation in this bitmap
3 Create a second BITMAP
4 Draw the NEW situation in this bitmap
5 Create a third BITMAP = OLD - NEW
6 Masked-blit this bitmap to the screen

The trick is in the OLD-NEW operator. It blanks all pixels that are the same
color in both the NEW and OLD situation. Only pixels where really new
content appears will be blitted.
The OLD-NEW operator should be written in assembler (to difficult for me).
Maybe it is even possible to use MMX or hardware accelerated functionality.
However I tested this algo in plain C some time ago and it really works very
smooth.


- Raw text -


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