From: Chris Frolik Newsgroups: comp.os.msdos.djgpp Subject: Re: Allegro mode 13h Date: Wed, 14 Oct 1998 14:06:03 -0500 Organization: - Lines: 67 Message-ID: <3624F61B.2A62BEC9@purdue.edu> References: <01bdf794$4a8e4460$5e9bf482 AT s-64584> NNTP-Posting-Host: shrv-a-033.resnet.purdue.edu Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 4.06 [en] (Win98; I) To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com > [---Snip---] > #include > > int main(void) > { > allegro_init(); > set_gfx_mode(GFX_VGA, 320, 200, 0, 0); > install_keyboard(); > > BITMAP *image; > PALETTE *pal; Your main problem is that `pal' is declared wrong here. It should be: PALETTE pal; PALETTE is typedef'd so that it will be an array of 256 RGB structures. Declaring a (PALETTE*) will actually declare a pointer to an array of RGB structures, which is not what load_bitmap() asks for. > image = create_bitmap(16, 16); You don't need the above line. In fact, it will lead to memory leaks. You're creating a bitmap, and then loading a bitmap to that same pointer in the next line. load_bitmap() will create the bitmap for you. > image = load_bitmap("test.bmp", pal); You should check the value returned by load_bitmap() before you attempt to use it. For example: if (!image) { allegro_exit(); fprintf(stderr, "Oops! Error loading bitmap file TEST.BMP\n"); return 1; } Also, you probably want to set the palette to the `pal' variable, which will now hold the palette of the image you loaded. Just call: set_palette(pal); > > blit(image, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H); The last two values of blit() should be the width/height of the source bitmap, which you probably want to be image->w, image->h instead of SCREEN_W, SCREEN_H. Note that you need to destroy the bitmap you loaded before you call allegro_exit(). Do this with: destroy_bitmap(image); > > readkey(); > allegro_exit(); > return 0; > } > [---End of Snip---] > compiling with the allegro library I got this error: > game.cc: In function `int main()': > game.cc:12: passing `RGB (*)[256]' as argument 2 of `load_bitmap(char *, > RGB *)' > It have something to do with the palette, I want to use the colors the > image was draw with.