Jump to content
  • Advertisement
Sign in to follow this  
PlayswithSquirrels

Allegro bitmap problems

This topic is 2057 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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.

Share this post


Link to post
Share on other sites
Advertisement

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?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

You'll need to look into double buffering. Also, a little advice. Allegro 5 is a much nicer interface than Allegro 4. Moreover, it uses OpenGL or Direct3D under the hood, along with a nice event system. You should really consider learning with it instead.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!