delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/10/28/18:45:33

From: Sormuras <Sormuras AT GMX DOT de>
Newsgroups: comp.os.msdos.djgpp
Subject: Allegro,bitmaps and SPEED
Date: Mon, 27 Oct 1997 16:42:40 +0000
Organization: CTSR
Lines: 51
Message-ID: <3454C480.2434@GMX.de>
Reply-To: Sormuras AT GMX DOT de
NNTP-Posting-Host: pppin68.koblenz.rhein-zeitung.de
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Hello!

I need a little help to do some speeding
with allegro's bitmaps ... :)

I want to draw a bitmap (c) onto another one (b) at
the position (x,y). /*all the range checking is done*/
Bitmap (c) colors are to be interpretated as follows:
pixel  > 128 : add the difference to 128
pixel == 128 : leave pixel on (b) untouched
pixel  < 128 : decrement the diff to 128

// ...in a picture
//  
//    (b)      +       (c)            ->     (b')
//
// 2,3,4,3,2   126,128,128,128,126        0,3,4,3,0
// 2,3,4,3,2   127,128,128,128,127        1,3,4,3,1
// 2,3,4,3,2   127,128,130,128,127        1,3,6,3,1
// 2,3,4,3,2   127,128,128,128,127        1,3,4,3,1
// 2,3,4,3,2   126,128,128,128,126        0,3,4,3,0
//

Here is my first attemp: 

//Yeah! I know, it's slow! That's why I'm writing!

void add_relative (BITMAP *b, BITMAP *c, int x, int y)
{
 int i,j,z;
 for ( j=0; j < c->h; j++ )
  for ( i=0; i < c->w; i++ )
   {
    z = _getpixel(b,i+x,j+y)+_getpixel(c,i,j)-128;
    if (z<min_value) z=min_value;
    if (z>max_value) z=max_value;
    _putpixel( b, i+x, j+y, z );
   }
}

For every reply, many thanks in advance!

-- 
Sormuras

  +--------------------------------------------------+
 /   //       //       ////   ///    // /  /    //  /|
*--------------------------------------------------+/|
| e-mail   : Sormuras AT GMX DOT de                       |/+
| homepage : http://homes.Rhein-Zeitung.de/~kstein |/
+--------------------------------------------------+

- Raw text -


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