From: Chris Sequeira 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 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk 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)