Mail Archives: djgpp/1997/06/11/19:07:51
| From: | Chris Sequeira <nav2 AT flash DOT net>
|
| Newsgroups: | comp.os.msdos.djgpp
|
| Subject: | Optimization help needed
|
| Date: | Sun, 08 Jun 1997 18:21:22 -0500
|
| Organization: | BlackHawk Software
|
| Lines: | 29
|
| Message-ID: | <339B3E72.4FE@flash.net>
|
| Reply-To: | nav2 AT flash DOT net
|
| NNTP-Posting-Host: | tc1-48.flash.net
|
| Mime-Version: | 1.0
|
| To: | djgpp AT delorie DOT com
|
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp
|
I got Justin Frankel's Plush 3D library to work with Allegro graphics
modes. Now I can run it at high resolutions, such as 360 x 480 Mode-X
and the like. Only one problem: the Plush framebuffer and Allegro
memory bitmaps are created with incompatible data types. The Plush
framebuffer is pure characters; the Allegro bitmap is of type BITMAP.
So, every frame, I have to call this function to copy the pixel values
to the Allegro bitmap:
// copies pure framebuffer values to allegro's bitmap
// DARN SLOW!!!!!!!!!!!!!!!!!!!!!!!
static void copy2bit(char *framebuffer, BITMAP *bitmap) {
static int x, y, value;
for (x = 0; x < W; x++) {
for (y = 0; y < H; y++) {
value = W*y+x;
bitmap->line[y][x] = framebuffer[value];
}
}
return;
}
It has to copy W * H (in this case, 360*480) pixels every frame.
Needless to say, it's not fast stuff. I don't know how to get around
this, so I need to optimize it. Unfortunately, I don't know any
assembly language. Can anybody help with this?
--
From Chris Sequeira (nav2 AT flash DOT net)
- Raw text -