Skip to main content
GameDev.net gamedev.net
🔒 Locked

Allegro bitmap problems

Started by PlayswithSquirrels Feb 27, 2013 at 12:15 PM 4 replies 1.3k views
Original Post
PlayswithSquirrels
PlayswithSquirrels

New at programming. Trying to create a 16-puzzle on allegro. I'm still at the stage of trying to make an image show up on the screen, but when I compile, the screen goes black and no image is shown. No error messages or warnings pop up.


#include <allegro.h>

void init();
void deinit();

int main() {
	init();
	
	BITMAP *my_pic;
	PALETTE palette;
	my_pic = load_bitmap("chihuahua.bmp", palette);
	
	if(my_pic==NULL)
	{
		set_gfx_mode(GFX_TEXT, 0,0,0,0);
		allegro_message("Can't load chihuahua.bmp");
		return 1;
	}

	while (!key[KEY_ESC]) {
		blit(my_pic, screen, 0,0,0,0,50,50);
		blit(my_pic, screen, 50,50,100,100,150,150);
		clear(my_pic);
	}
	
	destroy_bitmap(my_pic);
	deinit();
	return 0;
}
END_OF_MAIN()

void init() {
	int depth, res;
	allegro_init();
	depth = desktop_color_depth();
	if (depth == 0) depth = 32;
	set_color_depth(depth);
	res = set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
	if (res != 0) {
		allegro_message(allegro_error);
		exit(-1);
	}

	install_timer();
	install_keyboard();
	install_mouse();
}

void deinit() {
	clear_keybuf();
}

I'm really frustrated, I've been at this for 3 days, to no avail. I'm on a time crunch, I still have alot to do with the code, and can't do any of it if the bitmap refuses to open. Any and all help is welcome.

PlayswithSquirrels
PlayswithSquirrels

Please don't tell me to google and to read the manual. I have, and am still doing so. Nonetheless, I'm stuck.

RulerOfNothing
RulerOfNothing

I have a question: what exactly does clear(my_pic); do? If it clears the loaded image you probably want clear(screen); or whatever clears the screen instead.

PlayswithSquirrels
PlayswithSquirrels

Thanks for the tip, the image now shows up. But now it keeps flickering. When I take out clear(screen) the image still shows up and doesn't flicker. Do you think the clear(screen) would make too much of a difference if I just don't use it?

RulerOfNothing
RulerOfNothing

If you redraw the entire screen (or at least all parts of the screen that change) every frame then removing clear(screen) won't make any difference otherwise part of the old frame will still be on the screen.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.