Exemplo n.º 1
0
int gr_check_mode(u_int32_t mode)
{
	switch(mode)
	{
	case SM(320,100)://19:
	case SM(320,200):
	case SM(320,240):
	case SM(360,200):
	case SM(360,240):
	case SM(376,282):
	case SM(320,400):
	case SM(320,480):
	case SM(360,400):
	case SM(360,480):
	case SM(360,360):
	case SM(376,308):
	case SM(376,564):		return gr_mode13_checkmode();
	case SM(640,400):		return gr_vesa_checkmode( 0x100 ); 
	case SM(640,480): 	return gr_vesa_checkmode( 0x101 ); 
	case SM(800,600): 	return gr_vesa_checkmode( 0x103 ); 
	case SM(1024,768):	return gr_vesa_setmode( 0x105 ); 
//	case SM_640x480V15:	return gr_vesa_setmode( 0x110 ); 
//	case SM_800x600V15:	return gr_vesa_setmode( 0x113 ); 
	}
        return 11;
}
Exemplo n.º 2
0
main(int argc,char **argv)
{
	int ret;
	grs_bitmap my_bitmap;
	ubyte my_palette[256*3];

	ret = iff_read_bitmap(argv[1],&my_bitmap,BM_RGB15,&my_palette);

	printf("ret = %d\n",ret);

	if (ret == IFF_NO_ERROR) {

		gr_vesa_setmode(0x110);

		draw_ubitmap(0,0,&my_bitmap);
	
		getch();

	}

}
Exemplo n.º 3
0
int gr_set_mode(u_int32_t mode)
{
	int retcode;
	unsigned int w,h,t,data, r;

	//JOHNgr_disable_default_palette_loading();
#ifdef NOGRAPH
return 0;
#endif
	switch(mode)
	{
	case SM_ORIGINAL:
		return 0;
	case SM(320,200)://0:
		if (!isvga()) return 1;
		gr_set_misc_mode(0x13);
		w = 320; r = 320; h = 200; t=BM_LINEAR; data = (int)gr_video_memory;
		break;
	case SM(640,400)://SM_640x400V:
		retcode = gr_vesa_setmode( 0x100 ); 
		if (retcode !=0 ) return retcode;
		w = 640; r = 640; h = 400; t=BM_SVGA; data = 0;
		break;
	case SM(640,480)://SM_640x480V:
		retcode = gr_vesa_setmode( 0x101 ); 
		if (retcode !=0 ) return retcode;
		w = 640; r = 640; h = 480; t=BM_SVGA; data = 0;
		break;
	case SM(800,600)://SM_800x600V:
		retcode = gr_vesa_setmode( 0x103 ); 
		if (retcode !=0 ) return retcode;
		w = 800; r = 800; h = 600; t=BM_SVGA; data = 0;
		break;
	case SM(1024,768)://SM_1024x768V:
		retcode = gr_vesa_setmode( 0x105 ); 
		if (retcode !=0 ) return retcode;
		w = 1024; r = 1024; h = 768; t=BM_SVGA; data = 0;
		break;
/*	case SM_640x480V15:
		retcode = gr_vesa_setmode( 0x110 ); 
		if (retcode !=0 ) return retcode;
		w = 640; r = 640*2; h=480; t=BM_SVGA15; data = 0;
		break;
	case SM_800x600V15:
		retcode = gr_vesa_setmode( 0x113 ); 
		if (retcode !=0 ) return retcode;
		w = 800; r = 800*2; h=600; t=BM_SVGA15; data = 0;
		break;*/
//	case 19:
	case SM(320,100):
		if (!isvga()) return 1;
		gr_set_misc_mode(0x13);	
//		{
//			ubyte x;
//			x = inp( 0x3c5 );
//			x |= 8;
//			outp( 0x3c5, x );
//		}
		gr_set_cellheight( 3 );

		w = 320; r = 320; h = 100; t=BM_LINEAR; data = (int)gr_video_memory;
		break;
/*	case 20:
		retcode = gr_vesa_setmode( 0x102 ); 
		//gr_enable_default_palette_loading();
		if (retcode !=0 ) return retcode;
		gr_16_to_256();
		gr_set_linear();
		//gr_set_cellheight( 1 );
		gr_vesa_setlogical( 400 );
		w = 400; r = 400; h = 600; t=BM_SVGA; data = 0;
		break;
	case 21:
		if (!isvga()) return 1;
		gr_set_misc_mode(0xd);	
		gr_16_to_256();
		gr_set_linear();
		gr_set_cellheight( 3 );
		w = 160; r = 160; h = 100; t=BM_LINEAR; data = (int)gr_video_memory;
		break;
	case //22:			// 3dmax 320x400
		if (!isvga()) return 1;
		gr_set_3dbios_mode(0x31);
		//w = 320; r = 320/4; h = 400; t=BM_MODEX; data = 0;
		w = 320; r = 320; h = 400; t=BM_SVGA; data = 0;
		break;*/
	default:
		if (!isvga()) return 1;
		if (mode==SM(320,240))
			w = gr_modex_setmode( 2 );
		else if (mode==SM(320,400))
			w = gr_modex_setmode( 6 );
		else
			Error("unhandled vid mode\n");
		//gr_enable_default_palette_loading();
		h = w & 0xffff; w = w >> 16; r = w / 4;t = BM_MODEX; data = 0;
		break;
	}
	gr_palette_clear();

	memset( grd_curscreen, 0, sizeof(grs_screen));
	grd_curscreen->sc_mode = mode;
	grd_curscreen->sc_w = w;
	grd_curscreen->sc_h = h;
        grd_curscreen->sc_aspect = fixdiv(grd_curscreen->sc_w*3,grd_curscreen->sc_h*4);
	grd_curscreen->sc_canvas.cv_bitmap.bm_x = 0;
	grd_curscreen->sc_canvas.cv_bitmap.bm_y = 0;
	grd_curscreen->sc_canvas.cv_bitmap.bm_w = w;
	grd_curscreen->sc_canvas.cv_bitmap.bm_h = h;
	grd_curscreen->sc_canvas.cv_bitmap.bm_rowsize = r;
	grd_curscreen->sc_canvas.cv_bitmap.bm_type = t;
	grd_curscreen->sc_canvas.cv_bitmap.bm_data = (unsigned char *)data;
        VGA_current_mode = mode;
	gr_set_current_canvas(NULL);

	//gr_enable_default_palette_loading();
//        gamefont_choose_game_font(w,h);

	return 0;
}