void gamefont_init() { int i; if (Gamefont_installed) return; Gamefont_installed = 1; for (i=0;i<MAX_FONTS;i++){ Gamefonts[i]=NULL; addfontconf(i,0,Gamefont_filenames_l[i]); addfontconf(i,640,Gamefont_filenames_h[i]); } // addfontconf(640,"pc6x8.fnt"); // addfontconf(1024,"pc8x16.fnt"); if ((i=FindArg("-font320"))) addfontconf(4,320,Args[i+1]); if ((i=FindArg("-font640"))) addfontconf(4,640,Args[i+1]); if ((i=FindArg("-font800"))) addfontconf(4,800,Args[i+1]); if ((i=FindArg("-font1024"))) addfontconf(4,1024,Args[i+1]); gamefont_choose_game_font(grd_curscreen->sc_canvas.cv_bitmap.bm_w,grd_curscreen->sc_canvas.cv_bitmap.bm_h); atexit( gamefont_close ); }
int gr_set_mode(u_int32_t mode) { unsigned int w,h; char *gr_bm_data; #ifdef NOGRAPH return 0; #endif // mode=0; if (mode<=0) return 0; w=SM_W(mode); h=SM_H(mode); //if (screen != NULL) gr_palette_clear(); // ogl_init_state(); gr_bm_data=grd_curscreen->sc_canvas.cv_bitmap.bm_data;//since we use realloc, we want to keep this pointer around. 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 = screen->pitch; grd_curscreen->sc_canvas.cv_bitmap.bm_rowsize = w; grd_curscreen->sc_canvas.cv_bitmap.bm_type = BM_OGL; //grd_curscreen->sc_canvas.cv_bitmap.bm_data = (unsigned char *)screen->pixels; // mprintf((0,"ogl/gr.c: reallocing %p to %i\n",grd_curscreen->sc_canvas.cv_bitmap.bm_data,w*h)); grd_curscreen->sc_canvas.cv_bitmap.bm_data = realloc(gr_bm_data,w*h); gr_set_current_canvas(NULL); //gr_enable_default_palette_loading(); ogl_init_window(w,h);//platform specific code ogl_get_verinfo(); OGL_VIEWPORT(0,0,w,h); ogl_set_screen_mode(); gamefont_choose_game_font(w,h); return 0; }
void gamefont_init() { int i; if (Gamefont_installed) return; Gamefont_installed = 1; for (i=0;i<MAX_FONTS;i++){ Gamefonts[i]=NULL; if (GameArg.GfxHiresFNTAvailable) addfontconf(i,640,480,Gamefont_filenames_h[i]); // ZICO - addition to use D2 fonts if available addfontconf(i,320,200,Gamefont_filenames_l[i]); } gamefont_choose_game_font(grd_curscreen->sc_canvas.cv_bitmap.bm_w,grd_curscreen->sc_canvas.cv_bitmap.bm_h); }
int GrSetMode(int mode) { unsigned int w,h,t,r; if (mode == SM_ORIGINAL) return 0; switch (mode) { case SM(320,200): w = 320; r = 320; h = 200; t=BM_LINEAR;//BM_DIRECTX;; break; default: return 1; } GrPaletteStepClear(); memset( grdCurScreen, 0, sizeof(grs_screen); grdCurScreen->sc_mode = mode; grdCurScreen->sc_w = w; grdCurScreen->sc_h = h; grdCurScreen->sc_aspect = FixDiv(grdCurScreen->sc_w*3,grdCurScreen->sc_h*4); GrInitCanvas(&grdCurScreen->sc_canvas, (unsigned char *)BM_D3D_DISPLAY, t, w, h); GrSetCurrentCanvas(NULL); if (!(backbuffer = createdib())) return 1; grdCurScreen->sc_canvas.cv_bitmap.bm_texBuf = backbuffer; grdCurScreen->sc_canvas.cv_bitmap.bm_props.type = BM_LINEAR; grdCurScreen->sc_canvas.cv_bitmap.bm_props.x = 0; grdCurScreen->sc_canvas.cv_bitmap.bm_props.y = 0; grdCurScreen->sc_canvas.cv_bitmap.bm_props.w = w; grdCurScreen->sc_canvas.cv_bitmap.bm_props.h = h; grdCurScreen->sc_canvas.cv_bitmap.bm_props.rowsize = w; gamefont_choose_game_font(w,h); return 0; }
void gamefont_init() { if (Gamefont_installed) return; Gamefont_installed = 1; for (int i=0;i<MAX_FONTS;i++){ Gamefonts[i]=NULL; if (!CGameArg.GfxSkipHiresFNT) addfontconf(i,640,480,Gamefont_filenames_h[i]); // ZICO - addition to use D2 fonts if available #if defined(DXX_BUILD_DESCENT_I) if (MacHog && (i != 0)) addfontconf(i,640,480,Gamefont_filenames_l[i]); // Mac fonts are hires (except for the "big" one) else #endif addfontconf(i,320,200,Gamefont_filenames_l[i]); } gamefont_choose_game_font(grd_curscreen->sc_canvas.cv_bitmap.bm_w,grd_curscreen->sc_canvas.cv_bitmap.bm_h); }
int gr_set_mode(u_int32_t mode) { unsigned int w, h; char *gr_bm_data; if (mode<=0) return 0; w=SM_W(mode); h=SM_H(mode); if (!gr_check_mode(mode)) { con_printf(CON_URGENT,"Cannot set %ix%i. Fallback to 640x480\n",w,h); w=640; h=480; Game_screen_mode=mode=SM(w,h); } gr_bm_data=(char *)grd_curscreen->sc_canvas.cv_bitmap.bm_data;//since we use realloc, we want to keep this pointer around. 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*GameCfg.AspectX,grd_curscreen->sc_h*GameCfg.AspectY); gr_init_canvas(&grd_curscreen->sc_canvas, d_realloc(gr_bm_data,w*h), BM_OGL, w, h); gr_set_current_canvas(NULL); ogl_init_window(w,h);//platform specific code ogl_get_verinfo(); OGL_VIEWPORT(0,0,w,h); ogl_init_state(); gamefont_choose_game_font(w,h); gr_remap_color_fonts(); gr_remap_mono_fonts(); return 0; }
int gr_set_mode(u_int32_t mode) { int w,h; #ifdef NOGRAPH return 0; #endif if (mode<=0) return 0; w=SM_W(mode); h=SM_H(mode); if (screen != NULL) gr_palette_clear(); //added on 11/06/98 by Matt Mueller to set the title bar. (moved from below) //sekmu: might wanna copy this litte blurb to one of the text files or something //we want to set it here so that X window manager "Style" type commands work //for example, in fvwm2 or fvwm95: //Style "D1X*" NoTitle, NoHandles, BorderWidth 0 //if you can't use -fullscreen like me (crashes X), this is a big help in //getting the window centered correctly (if you use SmartPlacement) SDL_WM_SetCaption(DESCENT_VERSION " " D1X_DATE, "Descent"); //end addition -MM //edited 10/05/98 by Matt Mueller - make fullscreen mode optional // changed by adb on 980913: added SDL_HWPALETTE (should be option?) // changed by someone on 980923 to add SDL_FULLSCREEN if(!checkvidmodeok || SDL_VideoModeOK(w,h,8,sdl_video_flags)){ screen = SDL_SetVideoMode(w, h, 8, sdl_video_flags); } else { screen=NULL; } // end changes by someone // end changes by adb //end edit -MM if (screen == NULL) { Error("Could not set %dx%dx8 video mode\n",w,h); exit(1); } 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 = screen->pitch; grd_curscreen->sc_canvas.cv_bitmap.bm_type = BM_LINEAR; grd_curscreen->sc_canvas.cv_bitmap.bm_data = (unsigned char *)screen->pixels; gr_set_current_canvas(NULL); //gr_enable_default_palette_loading(); //added on 9/30/98 by Matt Mueller to hide the mouse if its over the game window SDL_ShowCursor(0); //end addition -MM //--moved up--added on 9/30/98 by Matt Mueller to set the title bar. Woohoo! //--moved up-- SDL_WM_SetCaption(DESCENT_VERSION " " D1X_DATE, NULL); //--moved up--end addition -MM gamefont_choose_game_font(w,h); return 0; }
int gr_set_mode(u_int32_t mode) { unsigned int w, h; ggi_mode other_mode; #ifdef NOGRAPH return 0; #endif if (mode<=0) return 0; w=SM_W(mode); h=SM_H(mode); gr_palette_clear(); if(ggiCheckGraphMode(screenvis, w, h, GGI_AUTO, GGI_AUTO, GT_8BIT, &other_mode)) ggiSetMode(screenvis, &other_mode); else ggiSetGraphMode(screenvis, w, h, GGI_AUTO, GGI_AUTO, GT_8BIT); ggiSetFlags(screenvis, GGIFLAG_ASYNC); if (!ggiDBGetNumBuffers(screenvis)) use_directbuffer = 0; else { dbuffer = ggiDBGetBuffer(screenvis, 0); if (!(dbuffer->type & GGI_DB_SIMPLE_PLB)) use_directbuffer = 0; else use_directbuffer = 1; } 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_type = BM_LINEAR; if (use_directbuffer) { grd_curscreen->sc_canvas.cv_bitmap.bm_data = dbuffer->write; grd_curscreen->sc_canvas.cv_bitmap.bm_rowsize = dbuffer->buffer.plb.stride; } else { free(screenbuffer); screenbuffer = malloc (w * h); grd_curscreen->sc_canvas.cv_bitmap.bm_data = screenbuffer; grd_curscreen->sc_canvas.cv_bitmap.bm_rowsize = w; } gr_set_current_canvas(NULL); gamefont_choose_game_font(w,h); return 0; }
int gr_set_mode(u_int32_t mode) { unsigned int w, h; char vgamode[16]; vga_modeinfo *modeinfo; int modenum, rowsize; void *framebuffer; #ifdef NOGRAPH return 0; #endif if (mode<=0) return 0; w=SM_W(mode); h=SM_H(mode); gr_palette_clear(); sprintf(vgamode, "G%dx%dx256", w, h); modenum = vga_getmodenumber(vgamode); vga_setmode(modenum); #ifdef SVGALIB_INPUT mouse_seteventhandler(mouse_handler); #endif modeinfo = vga_getmodeinfo(modenum); if (modeinfo->flags & CAPABLE_LINEAR) { usebuffer = 0; vga_setlinearaddressing(); // Set up physical screen only gl_setcontextvga(modenum); physicalscreen = gl_allocatecontext(); gl_getcontext(physicalscreen); screenbuffer = physicalscreen; framebuffer = physicalscreen->vbuf; rowsize = physicalscreen->bytewidth; } else { usebuffer = 1; // Set up the physical screen gl_setcontextvga(modenum); physicalscreen = gl_allocatecontext(); gl_getcontext(physicalscreen); // Set up the virtual screen gl_setcontextvgavirtual(modenum); screenbuffer = gl_allocatecontext(); gl_getcontext(screenbuffer); framebuffer = screenbuffer->vbuf; rowsize = screenbuffer->bytewidth; } 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 = rowsize; grd_curscreen->sc_canvas.cv_bitmap.bm_type = BM_LINEAR; grd_curscreen->sc_canvas.cv_bitmap.bm_data = framebuffer; gr_set_current_canvas(NULL); gamefont_choose_game_font(w,h); return 0; }