www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/05/04/22:35:54

From: gautam AT interlog DOT com (Gautam N. Lad)
Newsgroups: comp.os.msdos.djgpp
Subject: Help with blitting/getimage/putimage!
Date: Sun, 04 May 97 19:36:53 GMT
Organization: InterLog Internet Services
Lines: 66
Message-ID: <5kio86$gt7@news.interlog.com>
NNTP-Posting-Host: ip220-118.cc.interlog.com
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Hi,
Ok, I've finally gotten Mode 13 to initialize, and I now have the following 
functions/features:

void PutPixel(int x, int y, int Colour);     
int  GetPixel(int x, int y);         // Returns colour that is at location x,y
and SetPalette(int index, int r, int g, int b);

I am also able to load and display 256-colour PCX image, so that's good. ;)

What I want do now, is get a fragment of an image from a PCX image.  The PCX 
image is an image that has all the Sprites I will need for my game, and what I 
want do now, is grab an image from the PCX.  So, what I will do is display the 
image, grab a fragment (using x,y,width,height), and put it in a buffer.  Then, 
later, I will blit the pointer to screen, at location X,Y.

How do I do this?!?  BTW, I'm using pure C for mode 13, and I would 
appreciate if you all don't tell me to use ASM.  Why?  Simple, my school's 
compiler doesn't have ASM, so there (and also 'cause I don't know ASM)! ;)

BTW, Here are my functions:

//------------------- Gautam N. Lad's Mode 13 snippet ------------------------
char *Screen;

void PutPixel(int x, int y, int c)
{
Screen = (char *)MK_FP(0xA000,0x0000);
Screen[x + (y<<8) + (y<<6)] = c;
}

int GetPixel(int x, int y)
{
Screen = (char *)MK_FP(0xA000,0x0000);
return Screen[x + (y<<8) + (y<<6)];
}

void SetColor(int index, int r, int g, int b)
{
outp(0x3c8,index);
outp(0x3c9,r);
outp(0x3c9,g);
outp(0x3c9,b);
}
//------------------- Gautam N. Lad's Mode 13 snippet ------------------------

Another thing, here's what I want my blitting function to look like:

GetImage(int x1, int y1, int x2, int y2, void *ImageBuffer);
PutImage(int x, int y, void *ImageBuffer);

Thanks!
Bye!


****************************************************
* Gautam N. Lad                                    *
*--------------------------------------------------*
*                                                  *
* E-Mail    : gautam AT interlog DOT com                  *
* Website   : http://www.interlog.com/~gautam      *
*                                                  *
* OS/2, DOS/Windows, Graphics Gallery, Software,   *
* Links, Rayzor Editor/2, POV-Ray, TexturEyes,     *
* POV-PAK and lots lots lots more!!!!!!!           *
****************************************************

- Raw text -


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