From 5095bcd71a3bcec2f470574953eb52866202d6cc Mon Sep 17 00:00:00 2001 From: Bradley Bell Date: Sun, 25 Jan 2015 02:02:38 -0800 Subject: [PATCH] (re-)separation gr module from video functions --- 2d/gr.c | 96 ++++++++++++++++++++++++++++++++++ 2d/palette.c | 1 - arch/dos/{gr.c => vid.c} | 56 ++++++++------------ arch/include/vid.h | 65 +++++++++++++++++++++++ arch/ogl/glx.c | 2 +- arch/ogl/{gr.c => vid.c} | 98 ++++++++++++++--------------------- arch/sdl/{gr.c => vid.c} | 77 ++++++++++----------------- arch/svgalib/{gr.c => vid.c} | 61 ++++++++-------------- arch/win32/{gr.c => vid.c} | 60 +++++++-------------- arch/win32/win32.c | 55 +++++--------------- d2x.xcodeproj/project.pbxproj | 42 +++++++++------ include/gr.h | 36 +------------ main/automap.c | 10 ++-- main/credits.c | 7 ++- main/editor/med.c | 7 ++- main/escort.c | 4 +- main/game.c | 31 +++++------ main/game.h | 2 +- main/gamecntl.c | 6 +-- main/gamerend.c | 4 +- main/gameseq.c | 3 +- main/inferno.c | 15 +++--- main/kconfig.c | 5 +- main/menu.c | 17 +++--- main/movie.c | 17 +++--- main/newmenu.c | 11 ++-- main/scores.c | 5 +- main/titles.c | 28 +++++----- ui/file.c | 2 +- ui/keypress.c | 2 +- ui/menu.c | 2 +- ui/menubar.c | 2 +- ui/message.c | 2 +- ui/number.c | 2 +- ui/popup.c | 2 +- 35 files changed, 427 insertions(+), 408 deletions(-) create mode 100644 2d/gr.c rename arch/dos/{gr.c => vid.c} (93%) create mode 100644 arch/include/vid.h rename arch/ogl/{gr.c => vid.c} (90%) rename arch/sdl/{gr.c => vid.c} (86%) rename arch/svgalib/{gr.c => vid.c} (80%) rename arch/win32/{gr.c => vid.c} (84%) diff --git a/2d/gr.c b/2d/gr.c new file mode 100644 index 00000000..ced63c8d --- /dev/null +++ b/2d/gr.c @@ -0,0 +1,96 @@ +/* +THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX +SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO +END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A +ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS +IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS +SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE +FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE +CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS +AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE. +COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. +*/ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "gr.h" +#include "u_mem.h" + + +int gr_installed = 0; + +// Functions for GR.C + +int gr_close_screen(void); + + +void gr_close(void) +{ + gr_close_screen(); + gr_installed = 0; +} + + +int gr_init(void) +{ + // Only do this function once! + if (gr_installed == 1) + return 1; + + cvar_registervariable(&gr_palette_gamma); + + // Set flags indicating that this is installed. + gr_installed = 1; + + atexit(gr_close); + + return 0; +} + + +int gr_close_screen(void) +{ + if (grd_curscreen) { + d_free(grd_curscreen); + grd_curscreen = NULL; + } + + return 0; +} + + +int gr_init_screen(int bitmap_type, int w, int h, int x, int y, int rowsize, ubyte *screen_addr) +{ + if (!gr_installed) + return 1; + + if (grd_curscreen == NULL) + MALLOC( grd_curscreen, grs_screen, 1 ); + + memset(grd_curscreen, 0, sizeof(grs_screen)); + + grd_curscreen->sc_mode = bitmap_type; + 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 = x; + grd_curscreen->sc_canvas.cv_bitmap.bm_y = y; + 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 = bitmap_type; + grd_curscreen->sc_canvas.cv_bitmap.bm_data = (bitmap_type == BM_LINEAR) ? screen_addr : NULL; + + grd_curscreen->sc_canvas.cv_color = 0; + grd_curscreen->sc_canvas.cv_drawmode = 0; + grd_curscreen->sc_canvas.cv_font = NULL; + grd_curscreen->sc_canvas.cv_font_fg_color = 0; + grd_curscreen->sc_canvas.cv_font_bg_color = 0; + + gr_set_current_canvas( &grd_curscreen->sc_canvas ); + + return 0; +} diff --git a/2d/palette.c b/2d/palette.c index 09a32107..742bcf45 100644 --- a/2d/palette.c +++ b/2d/palette.c @@ -38,7 +38,6 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "palette.h" -extern int gr_installed; #define SQUARE(x) ((x)*(x)) diff --git a/arch/dos/gr.c b/arch/dos/vid.c similarity index 93% rename from arch/dos/gr.c rename to arch/dos/vid.c index 88510615..c2b0057c 100644 --- a/arch/dos/gr.c +++ b/arch/dos/vid.c @@ -35,7 +35,7 @@ unsigned char * gr_video_memory = (unsigned char *)0xa0000; char gr_pal_default[768]; -int gr_installed = 0; +int vid_installed = 0; volatile ubyte * pVideoMode = (volatile ubyte *)0x449; volatile ushort * pNumColumns = (volatile ushort *)0x44a; @@ -59,7 +59,8 @@ typedef struct screen_save { screen_save gr_saved_screen; int gr_show_screen_info = 0; -extern uint32_t VGA_current_mode; +uint32_t Vid_current_mode; + void gr_set_cellheight( ubyte height ) { @@ -291,11 +292,11 @@ void gr_restore_mode() } -void gr_close() + +void vid_close(void) { - if (gr_installed==1) - { - gr_installed = 0; + if (vid_installed == 1) { + vid_installed = 0; gr_restore_mode(); free(grd_curscreen); if( gr_saved_screen.video_memory ) { @@ -318,7 +319,7 @@ int gr_vesa_setmode( int mode ) #endif -int gr_set_mode(uint32_t mode) +int vid_set_mode(uint32_t mode) { int retcode; unsigned int w,h,t,data, r; @@ -418,35 +419,20 @@ return 0; } 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); + Vid_current_mode = mode; - return 0; + return gr_init_screen(BM_LINEAR, w, h, 0, 0, r, (unsigned char *)data); } -int gr_init(void) + +int vid_init(void) { int org_gamma; int retcode; int mode = SM(320,200); // Only do this function once! - if (gr_installed==1) + if (vid_installed == 1) return 3; #ifdef __DJGPP__ @@ -499,15 +485,14 @@ int gr_init(void) memset( grd_curscreen, 0, sizeof(grs_screen)); // Set the mode. - if ((retcode=gr_set_mode(mode))) - { + if ((retcode = vid_set_mode(mode))) { gr_restore_mode(); return retcode; } //JOHNgr_disable_default_palette_loading(); // Set all the screen, canvas, and bitmap variables that - // aren't set by the gr_set_mode call: + // aren't set by the vid_set_mode call: grd_curscreen->sc_canvas.cv_color = 0; grd_curscreen->sc_canvas.cv_drawmode = 0; grd_curscreen->sc_canvas.cv_font = NULL; @@ -528,12 +513,12 @@ int gr_init(void) // Set flags indicating that this is installed. - gr_installed = 1; + vid_installed = 1; #ifdef __GNUC__ - atexit((void (*)) gr_close); + atexit((void (*)) vid_close); #else - atexit(gr_close); + atexit(vid_close); #endif return 0; } @@ -559,7 +544,7 @@ int gr_mode13_checkmode() // 10=Error allocating selector for A0000h // 11=Not a valid mode support by gr.lib -int gr_check_mode(uint32_t mode) +int vid_check_mode(uint32_t mode) { switch(mode) { @@ -727,5 +712,6 @@ void gr_palette_read(ubyte * palette) } } -void gr_update(void) + +void vid_update(void) { } diff --git a/arch/include/vid.h b/arch/include/vid.h new file mode 100644 index 00000000..fbff084a --- /dev/null +++ b/arch/include/vid.h @@ -0,0 +1,65 @@ +/* +THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX +SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO +END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A +ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS +IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS +SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE +FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE +CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS +AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE. +COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. +*/ + + +#ifndef _VID_H +#define _VID_H + +#include "pstypes.h" + + +void vid_close(void); +int vid_set_mode(uint32_t mode); +int vid_init(void); +int vid_check_mode(uint32_t mode); + +extern uint32_t Vid_current_mode; + +extern void vid_update(void); + +/* + * currently SDL and OGL are the only things that supports toggling + * fullscreen. otherwise add other checks to the #if -MPM + */ +#if (defined(SDL_VIDEO) || defined(OGL)) +#define VID_SUPPORTS_FULLSCREEN_TOGGLE + +/* + * must return 0 if windowed, 1 if fullscreen + */ +int vid_check_fullscreen(void); + +/* + * returns state after toggling (ie, same as if you had called + * check_fullscreen immediatly after) + */ +int vid_toggle_fullscreen(void); + +#endif /* defined(SDL_VIDEO) || defined(OGL)) */ + +/* currently only OGL can toggle in the menus, because its screen data + * is not used (and stays in the same place). whereas software modes, + * toggling fullscreen would very likely make the data buffer point to + * a different location, and all the subbitmaps of it would have + * invalid addresses in them. */ +#ifdef OGL +#define VID_SUPPORTS_FULLSCREEN_MENU_TOGGLE +#endif + +/* + * returns state after toggling (ie, same as if you had called check_fullscreen immediately after) + */ +int vid_toggle_fullscreen_menu(void); + + +#endif diff --git a/arch/ogl/glx.c b/arch/ogl/glx.c index cd48efa5..c4b5390e 100644 --- a/arch/ogl/glx.c +++ b/arch/ogl/glx.c @@ -216,7 +216,7 @@ int ogl_init_window(int x, int y){ if (ogl_fullscreen) ogl_do_fullscreen_internal(); -// gr_do_fullscreen(ogl_fullscreen); +// do_fullscreen(ogl_fullscreen); } return 0; } diff --git a/arch/ogl/gr.c b/arch/ogl/vid.c similarity index 90% rename from arch/ogl/gr.c rename to arch/ogl/vid.c index 92d4bce4..a0d4f2e5 100644 --- a/arch/ogl/gr.c +++ b/arch/ogl/vid.c @@ -31,6 +31,7 @@ #include "inferno.h" #include "text.h" #include "gr.h" +#include "vid.h" #include "gamefont.h" #include "grdef.h" #include "palette.h" @@ -57,7 +58,7 @@ int ogl_voodoohack=0; -int gr_installed = 0; +int vid_installed = 0; void gr_palette_clear(); // Function prototype for gr_init; @@ -66,11 +67,15 @@ int gl_reticle = 0; int ogl_fullscreen=0; -int gr_check_fullscreen(void){ + +int vid_check_fullscreen(void) +{ return ogl_fullscreen; } -void gr_do_fullscreen(int f){ + +static void do_fullscreen(int f) +{ if (ogl_voodoohack) ogl_fullscreen=1;//force fullscreen mode on voodoos. else @@ -80,13 +85,17 @@ void gr_do_fullscreen(int f){ } } -int gr_toggle_fullscreen(void){ - gr_do_fullscreen(!ogl_fullscreen); + +int vid_toggle_fullscreen(void) +{ + do_fullscreen(!ogl_fullscreen); // grd_curscreen->sc_mode=0;//hack to get it to reset screen mode return ogl_fullscreen; } -int arch_toggle_fullscreen_menu(void){ + +int vid_toggle_fullscreen_menu(void) +{ unsigned char *buf=NULL; if (ogl_readpixels_ok){ @@ -95,7 +104,7 @@ int arch_toggle_fullscreen_menu(void){ glReadPixels(0,0,grd_curscreen->sc_w,grd_curscreen->sc_h,GL_RGB,GL_UNSIGNED_BYTE,buf); } - gr_do_fullscreen(!ogl_fullscreen); + do_fullscreen(!ogl_fullscreen); if (ogl_readpixels_ok){ // glWritePixels(0,0,grd_curscreen->sc_w,grd_curscreen->sc_h,GL_RGB,GL_UNSIGNED_BYTE,buf); @@ -146,7 +155,7 @@ void ogl_set_screen_mode(void){ last_screen_mode=Screen_mode; } -void gr_update() +void vid_update() { if (gl_initialized){ @@ -294,7 +303,7 @@ void ogl_get_verinfo(void) } -int gr_check_mode(uint32_t mode) +int vid_check_mode(uint32_t mode) { int w, h; @@ -304,12 +313,12 @@ int gr_check_mode(uint32_t mode) } -extern uint32_t VGA_current_mode; // DPH: kludge - remove at all costs +uint32_t Vid_current_mode; + -int gr_set_mode(uint32_t mode) +int vid_set_mode(uint32_t mode) { short w, h; - char *gr_bm_data; #ifdef NOGRAPH return 0; @@ -318,34 +327,19 @@ return 0; if (mode<=0) return 0; - if (mode == VGA_current_mode) + if (mode == Vid_current_mode) return 0; w=SM_W(mode); h=SM_H(mode); - VGA_current_mode = mode; + Vid_current_mode = mode; //if (screen != NULL) gr_palette_clear(); // ogl_init_state(); - - 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*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 = d_realloc(gr_bm_data,w*h); - gr_set_current_canvas(NULL); + + gr_init_screen(BM_OGL, w, h, 0, 0, w, NULL); + //gr_enable_default_palette_loading(); ogl_init_window(w,h);//platform specific code @@ -390,7 +384,7 @@ int ogl_testneedmipmaps(int i){ } -void gr_cmd_texturemode(int argc, char **argv) +void ogl_cmd_texturemode(int argc, char **argv) { if (argc < 2) return; @@ -460,12 +454,13 @@ int ogl_init_load_library(void) } #endif -int gr_init() + +int vid_init(void) { int t, glt = 0; // Only do this function once! - if (gr_installed==1) + if (vid_installed == 1) return -1; @@ -473,13 +468,13 @@ int gr_init() ogl_init_load_library(); #endif -#ifdef GR_SUPPORTS_FULLSCREEN_TOGGLE +#ifdef VID_SUPPORTS_FULLSCREEN_TOGGLE if (FindArg("-gl_voodoo")){ ogl_voodoohack=1; - gr_toggle_fullscreen(); + vid_toggle_fullscreen(); } if (FindArg("-fullscreen")) - gr_toggle_fullscreen(); + vid_toggle_fullscreen(); #endif if ((glt=FindArg("-gl_alttexmerge"))) ogl_alttexmerge=1; @@ -539,39 +534,24 @@ int gr_init() ogl_init_texture_list_internal(); - MALLOC( grd_curscreen,grs_screen,1 ); - memset( grd_curscreen, 0, sizeof(grs_screen)); - grd_curscreen->sc_canvas.cv_bitmap.bm_data = NULL; - grd_curscreen->sc_canvas.cv_color = 0; - grd_curscreen->sc_canvas.cv_drawmode = 0; - grd_curscreen->sc_canvas.cv_font = NULL; - grd_curscreen->sc_canvas.cv_font_fg_color = 0; - grd_curscreen->sc_canvas.cv_font_bg_color = 0; - gr_set_current_canvas( &grd_curscreen->sc_canvas ); - - cmd_addcommand("gl_texturemode", gr_cmd_texturemode); + cmd_addcommand("gl_texturemode", ogl_cmd_texturemode); - cvar_registervariable(&gr_palette_gamma); - - gr_installed = 1; + vid_installed = 1; - atexit(gr_close); + atexit(vid_close); return 0; } -void gr_close() + +void vid_close(void) { // mprintf((0,"ogl init: %s %s %s - %s\n",glGetString(GL_VENDOR),glGetString(GL_RENDERER),glGetString(GL_VERSION),glGetString,(GL_EXTENSIONS))); ogl_brightness_r = ogl_brightness_g = ogl_brightness_b = 0; ogl_setbrightness_internal(); ogl_close();//platform specific code - if (grd_curscreen){ - if (grd_curscreen->sc_canvas.cv_bitmap.bm_data) - d_free(grd_curscreen->sc_canvas.cv_bitmap.bm_data); - d_free(grd_curscreen); - } + #ifdef OGL_RUNTIME_LOAD if (ogl_rt_loaded) OpenGL_LoadLibrary(false); diff --git a/arch/sdl/gr.c b/arch/sdl/vid.c similarity index 86% rename from arch/sdl/gr.c rename to arch/sdl/vid.c index d76d2640..e9cece0b 100644 --- a/arch/sdl/gr.c +++ b/arch/sdl/vid.c @@ -17,6 +17,7 @@ #endif #include "gr.h" +#include "vid.h" #include "grdef.h" #include "palette.h" #include "u_mem.h" @@ -38,7 +39,7 @@ SDL_Surface *screen; static SDL_Surface *real_screen, *screen2; #endif -int gr_installed = 0; +int vid_installed = 0; //added 05/19/99 Matt Mueller - locking stuff #ifdef GR_LOCK @@ -123,7 +124,7 @@ void BlitRotatedSurface(SDL_Surface *from, SDL_Surface *to) void gr_palette_clear(); // Function prototype for gr_init; -void gr_update() +void vid_update() { //added 05/19/99 Matt Mueller - locking stuff // gr_testunlock(); @@ -140,7 +141,7 @@ void gr_update() } -int gr_check_mode(uint32_t mode) +int vid_check_mode(uint32_t mode) { int w, h; @@ -151,9 +152,10 @@ int gr_check_mode(uint32_t mode) } -extern uint32_t VGA_current_mode; // DPH: kludge - remove at all costs +uint32_t Vid_current_mode; -int gr_set_mode(uint32_t mode) + +int vid_set_mode(uint32_t mode) { int w,h; @@ -164,12 +166,12 @@ int gr_set_mode(uint32_t mode) if (mode<=0) return 0; - if (mode == VGA_current_mode) + if (mode == Vid_current_mode) return 0; w=SM_W(mode); h=SM_H(mode); - VGA_current_mode = mode; + Vid_current_mode = mode; if (screen != NULL) gr_palette_clear(); @@ -206,51 +208,35 @@ int gr_set_mode(uint32_t mode) if (screen == NULL) { Error("Could not set %dx%dx8 video mode\n",w,h); } - 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(); - -//--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; + + return gr_init_screen(BM_LINEAR, w, h, 0, 0, screen->pitch, (unsigned char *)screen->pixels); } -int gr_check_fullscreen(void){ + +int vid_check_fullscreen(void) +{ return (sdl_video_flags & SDL_FULLSCREEN)?1:0; } -int gr_toggle_fullscreen(void){ + +int vid_toggle_fullscreen(void) +{ sdl_video_flags^=SDL_FULLSCREEN; SDL_WM_ToggleFullScreen(screen); return (sdl_video_flags & SDL_FULLSCREEN)?1:0; } -int gr_init(void) + +int vid_init(void) { // Only do this function once! - if (gr_installed==1) + if (vid_installed == 1) return -1; if (SDL_Init(SDL_INIT_VIDEO) < 0) { Error("SDL library video initialisation failed: %s.",SDL_GetError()); } - MALLOC( grd_curscreen,grs_screen,1 ); - memset( grd_curscreen, 0, sizeof(grs_screen)); //added 10/05/98 by Matt Mueller - make fullscreen mode optional if (FindArg("-fullscreen")) @@ -261,30 +247,19 @@ int gr_init(void) sdl_video_flags|=SDL_HWSURFACE; //end addition -MM - grd_curscreen->sc_canvas.cv_color = 0; - grd_curscreen->sc_canvas.cv_drawmode = 0; - grd_curscreen->sc_canvas.cv_font = NULL; - grd_curscreen->sc_canvas.cv_font_fg_color = 0; - grd_curscreen->sc_canvas.cv_font_bg_color = 0; - gr_set_current_canvas( &grd_curscreen->sc_canvas ); - - cvar_registervariable(&gr_palette_gamma); - - gr_installed = 1; + vid_installed = 1; // added on 980913 by adb to add cleanup - atexit(gr_close); + atexit(vid_close); // end changes by adb return 0; } -void gr_close() + +void vid_close(void) { - if (gr_installed==1) - { - gr_installed = 0; - d_free(grd_curscreen); - } + if (vid_installed == 1) + vid_installed = 0; } // Palette functions follow. diff --git a/arch/svgalib/gr.c b/arch/svgalib/vid.c similarity index 80% rename from arch/svgalib/gr.c rename to arch/svgalib/vid.c index f22cfc78..3c4c30b3 100644 --- a/arch/svgalib/gr.c +++ b/arch/svgalib/vid.c @@ -25,20 +25,26 @@ #include "gamefont.h" -int gr_installed = 0; + +int vid_installed = 0; int usebuffer; extern void mouse_handler (int button, int dx, int dy, int dz, int drx, int dry, int drz); GraphicsContext *physicalscreen, *screenbuffer; -void gr_update() + +void vid_update() { if (usebuffer) gl_copyscreen(physicalscreen); } -int gr_set_mode(uint32_t mode) + +uint32_t Vid_current_mode; + + +int vid_set_mode(uint32_t mode) { unsigned int w, h; char vgamode[16]; @@ -54,6 +60,7 @@ int gr_set_mode(uint32_t mode) w=SM_W(mode); h=SM_H(mode); + Vid_current_mode = mode; gr_palette_clear(); @@ -98,58 +105,36 @@ int gr_set_mode(uint32_t mode) 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; + + return gr_init_screen(BM_LINEAR, w, h, 0, 0, rowsize, framebuffer); } -int gr_init(void) + +int vid_init(void) { int retcode; int mode = SM(320,200); // Only do this function once! - if (gr_installed==1) + if (vid_installed == 1) return -1; - MALLOC(grd_curscreen,grs_screen, 1); - memset(grd_curscreen, 0, sizeof(grs_screen)); vga_init(); - if ((retcode=gr_set_mode(mode))) + if ((retcode = gr_set_mode(mode))) return retcode; - - grd_curscreen->sc_canvas.cv_color = 0; - grd_curscreen->sc_canvas.cv_drawmode = 0; - grd_curscreen->sc_canvas.cv_font = NULL; - grd_curscreen->sc_canvas.cv_font_fg_color = 0; - grd_curscreen->sc_canvas.cv_font_bg_color = 0; - gr_set_current_canvas( &grd_curscreen->sc_canvas ); - - gr_installed = 1; - atexit(gr_close); + + vid_installed = 1; + atexit(vid_close); return 0; } -void gr_close () + +void vid_close(void) { - if (gr_installed==1) - { - gr_installed = 0; + if (vid_installed == 1) { + vid_installed = 0; free(grd_curscreen); gl_freecontext(screenbuffer); gl_freecontext(physicalscreen); diff --git a/arch/win32/gr.c b/arch/win32/vid.c similarity index 84% rename from arch/win32/gr.c rename to arch/win32/vid.c index cd617d30..5073cea6 100644 --- a/arch/win32/gr.c +++ b/arch/win32/vid.c @@ -31,7 +31,7 @@ char *backbuffer = NULL; -int gr_installed = 0; +int vid_installed = 0; // Min without sideeffects. #ifdef _MSC_VER @@ -54,7 +54,7 @@ PALETTEENTRY pe[256]; //(needs a 256 color mode to be useful) //#define DD_NOT_EXCL -void gr_palette_clear(); // Function prototype for gr_init; +void gr_palette_clear(); // Function prototype for vid_init; static char *DDerror(int code) @@ -168,7 +168,7 @@ static char *DDerror(int code) } -void gr_update() +void vid_update() { DDSURFACEDESC ddsd; HRESULT ddrval; @@ -225,8 +225,7 @@ void gr_update() } - -int gr_set_mode(uint32_t mode) +int vid_set_mode(uint32_t mode) { DDSURFACEDESC ddsd; // DDSURFACEDESC DDSDesc; @@ -297,20 +296,9 @@ int gr_set_mode(uint32_t mode) 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_type = BM_LINEAR; - backbuffer = malloc(w*h); memset(backbuffer, 0, w*h); - grd_curscreen->sc_canvas.cv_bitmap.bm_data = (unsigned char *)backbuffer; + gr_init_screen(BM_LINEAR, w, h, 0 0, w, (unsigned char *)backbuffer); ddsd.dwSize=sizeof(ddsd); ddrval=IDirectDrawSurface_Lock(lpDDSPrimary,NULL,&ddsd,0,NULL); @@ -319,15 +307,9 @@ int gr_set_mode(uint32_t mode) return -6; } - // bm_rowsize is for backbuffer, so always w -- adb - grd_curscreen->sc_canvas.cv_bitmap.bm_rowsize = w; - //grd_curscreen->sc_canvas.cv_bitmap.bm_rowsize = (short)ddsd.lPitch; - memset(ddsd.lpSurface,0,w*h); // Black the canvas out to stop nasty kludgy display IDirectDrawSurface_Unlock(lpDDSPrimary,NULL); - gr_set_current_canvas(NULL); - gamefont_choose_game_font(w,h); printf("Successfully completed set_mode\n"); @@ -353,42 +335,36 @@ void Win32_MakePalVisible(void) } //end additions - adb -void gr_close(void); -int gr_init(int mode) +void vid_close(void); + + +int vid_init(int mode) { int retcode; // Only do this function once! - if (gr_installed==1) + if (vid_installed == 1) return -1; - MALLOC( grd_curscreen,grs_screen,1 ); - memset( grd_curscreen, 0, sizeof(grs_screen)); // Set the mode. - if ((retcode=gr_set_mode(mode))) - { + if ((retcode = vid_set_mode(mode))) { return retcode; } - grd_curscreen->sc_canvas.cv_color = 0; - grd_curscreen->sc_canvas.cv_drawmode = 0; - grd_curscreen->sc_canvas.cv_font = NULL; - grd_curscreen->sc_canvas.cv_font_fg_color = 0; - grd_curscreen->sc_canvas.cv_font_bg_color = 0; - gr_set_current_canvas( &grd_curscreen->sc_canvas ); - - gr_installed = 1; + + vid_installed = 1; // added on 980913 by adb to add cleanup - atexit(gr_close); + atexit(vid_close); // end changes by adb return 0; } -void gr_close(void) + +void vid_close(void) { - if (gr_installed==1) + if (vid_installed == 1) { - gr_installed = 0; + vid_installed = 0; free(grd_curscreen); free(backbuffer); } diff --git a/arch/win32/win32.c b/arch/win32/win32.c index 52179746..7b0e64f8 100644 --- a/arch/win32/win32.c +++ b/arch/win32/win32.c @@ -69,11 +69,10 @@ void arch_init() } +int vid_installed = 0; -int gr_installed = 0; - -int gr_check_mode(uint32_t mode) +int vid_check_mode(uint32_t mode) { if (mode == SM(320, 200)) return 0; @@ -81,7 +80,8 @@ int gr_check_mode(uint32_t mode) return 11; } -int gr_set_mode(uint32_t mode) + +int vid_set_mode(uint32_t mode) { unsigned int w,h,t,r; @@ -99,61 +99,33 @@ int gr_set_mode(uint32_t mode) 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); - gr_init_canvas(&grd_curscreen->sc_canvas, (unsigned char *)BM_D3D_DISPLAY, t, w, h); - gr_set_current_canvas(NULL); - - if (!(backbuffer = createdib())) return 1; - grd_curscreen->sc_canvas.cv_bitmap.bm_data = backbuffer; - grd_curscreen->sc_canvas.cv_bitmap.bm_type = BM_LINEAR; - 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 = w; - + gr_init_screen(BM_LINEAR, w, h, 0, 0, w, backbuffer); + gamefont_choose_game_font(w,h); return 0; } -int gr_init(int mode) + +int vid_init(int mode) { //int org_gamma; int retcode; //HRESULT hr; // Only do this function once! - if (gr_installed==1) + if (vid_installed == 1) return -1; - MALLOC( grd_curscreen,grs_screen,1 ); - memset( grd_curscreen, 0, sizeof(grs_screen)); - // Set the mode. - if ((retcode=gr_set_mode(mode))) - { + if ((retcode = vid_set_mode(mode))) return retcode; - } - - // Set all the screen, canvas, and bitmap variables that - // aren't set by the gr_set_mode call: - grd_curscreen->sc_canvas.cv_color = 0; - grd_curscreen->sc_canvas.cv_drawmode = 0; - grd_curscreen->sc_canvas.cv_font = NULL; - grd_curscreen->sc_canvas.cv_font_fg_color = 0; - grd_curscreen->sc_canvas.cv_font_bg_color = 0; - gr_set_current_canvas( &grd_curscreen->sc_canvas ); // Set flags indicating that this is installed. - gr_installed = 1; + vid_installed = 1; return 0; } @@ -198,7 +170,8 @@ void gr_bm_upixel( grs_bitmap * bm, int x, int y, unsigned char color ) RGBQUAD w32lastrgb[256]; -void gr_update () + +void vid_update() { HDC hdc; unsigned char *p; @@ -325,7 +298,7 @@ void Win32_BlitLinearToDirectX_bm(grs_bitmap *bm, int sx, int sy, } void Win32_MakePalVisible(void) { - gr_update(); + vid_update(); } void Win32_InvalidatePages(void) { diff --git a/d2x.xcodeproj/project.pbxproj b/d2x.xcodeproj/project.pbxproj index ad6dce47..a17c8e4e 100644 --- a/d2x.xcodeproj/project.pbxproj +++ b/d2x.xcodeproj/project.pbxproj @@ -8,7 +8,7 @@ /* Begin PBXBuildFile section */ 142869B51A672E6300A095F6 /* tmapflat.c in Sources */ = {isa = PBXBuildFile; fileRef = 1466976C1A2729870070D41D /* tmapflat.c */; }; - 142869B61A672E6300A095F6 /* gr.c in Sources */ = {isa = PBXBuildFile; fileRef = 146695961A2729860070D41D /* gr.c */; }; + 142869B61A672E6300A095F6 /* vid.c in Sources */ = {isa = PBXBuildFile; fileRef = 146695961A2729860070D41D /* vid.c */; }; 142869B71A672E6300A095F6 /* SDLMain.m in Sources */ = {isa = PBXBuildFile; fileRef = 146695051A2729860070D41D /* SDLMain.m */; }; 142869B81A672E6300A095F6 /* init.c in Sources */ = {isa = PBXBuildFile; fileRef = 1466957A1A2729860070D41D /* init.c */; }; 142869B91A672E6300A095F6 /* ipx_kali.c in Sources */ = {isa = PBXBuildFile; fileRef = 1466957C1A2729860070D41D /* ipx_kali.c */; }; @@ -211,6 +211,9 @@ 14286A871A67330000A095F6 /* uidraw.c in Sources */ = {isa = PBXBuildFile; fileRef = 146699321A2729C60070D41D /* uidraw.c */; }; 14286A881A67330000A095F6 /* userbox.c in Sources */ = {isa = PBXBuildFile; fileRef = 146699331A2729C60070D41D /* userbox.c */; }; 14286A891A67330000A095F6 /* window.c in Sources */ = {isa = PBXBuildFile; fileRef = 146699341A2729C60070D41D /* window.c */; }; + 144BC0321A74C611001A6048 /* gr.c in Sources */ = {isa = PBXBuildFile; fileRef = 144BC0311A74C40E001A6048 /* gr.c */; }; + 144BC0331A74C611001A6048 /* gr.c in Sources */ = {isa = PBXBuildFile; fileRef = 144BC0311A74C40E001A6048 /* gr.c */; }; + 144BC0341A74C612001A6048 /* gr.c in Sources */ = {isa = PBXBuildFile; fileRef = 144BC0311A74C40E001A6048 /* gr.c */; }; 14804D611A4C9F2D001CB0FB /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14804D601A4C9F2D001CB0FB /* Cocoa.framework */; }; 14804D631A4C9F5C001CB0FB /* SDL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14804D621A4C9F5C001CB0FB /* SDL.framework */; }; 14804D651A4C9F74001CB0FB /* SDL_mixer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14804D641A4C9F74001CB0FB /* SDL_mixer.framework */; }; @@ -356,7 +359,7 @@ 14F0D5871A4CA77300682BB0 /* ukali.c in Sources */ = {isa = PBXBuildFile; fileRef = 146695871A2729860070D41D /* ukali.c */; }; 14F0D5881A4CA77300682BB0 /* joy.c in Sources */ = {isa = PBXBuildFile; fileRef = 146695981A2729860070D41D /* joy.c */; }; 14F0D5891A4CA77300682BB0 /* joydefs.c in Sources */ = {isa = PBXBuildFile; fileRef = 146695991A2729860070D41D /* joydefs.c */; }; - 14F0D58A1A4CA79400682BB0 /* gr.c in Sources */ = {isa = PBXBuildFile; fileRef = 1466958C1A2729860070D41D /* gr.c */; }; + 14F0D58A1A4CA79400682BB0 /* vid.c in Sources */ = {isa = PBXBuildFile; fileRef = 1466958C1A2729860070D41D /* vid.c */; }; 14F0D58B1A4CA79400682BB0 /* ogl.c in Sources */ = {isa = PBXBuildFile; fileRef = 146695901A2729860070D41D /* ogl.c */; }; 14F0D58C1A4CA79400682BB0 /* sdlgl.c in Sources */ = {isa = PBXBuildFile; fileRef = 146695911A2729860070D41D /* sdlgl.c */; }; 14F0D58F1A4CABD400682BB0 /* SDLMain.m in Sources */ = {isa = PBXBuildFile; fileRef = 146695051A2729860070D41D /* SDLMain.m */; }; @@ -500,7 +503,7 @@ 14F0D6211A4CB34F00682BB0 /* SDL_mixer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14804D641A4C9F74001CB0FB /* SDL_mixer.framework */; }; 14F0D6221A4CB34F00682BB0 /* SDL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14804D621A4C9F5C001CB0FB /* SDL.framework */; }; 14F0D6231A4CB34F00682BB0 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14804D601A4C9F2D001CB0FB /* Cocoa.framework */; }; - 14F0D6291A4CB3B100682BB0 /* gr.c in Sources */ = {isa = PBXBuildFile; fileRef = 146695961A2729860070D41D /* gr.c */; }; + 14F0D6291A4CB3B100682BB0 /* vid.c in Sources */ = {isa = PBXBuildFile; fileRef = 146695961A2729860070D41D /* vid.c */; }; 14F0D62A1A4CB3CB00682BB0 /* tmapflat.c in Sources */ = {isa = PBXBuildFile; fileRef = 1466976C1A2729870070D41D /* tmapflat.c */; }; /* End PBXBuildFile section */ @@ -548,6 +551,8 @@ 141635EC1A4CB5B3005E575E /* d2x-opengl */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "d2x-opengl"; sourceTree = BUILT_PRODUCTS_DIR; }; 141FE1001A2D36A600A4FB18 /* Makefile.am */ = {isa = PBXFileReference; lastKnownFileType = text; path = Makefile.am; sourceTree = ""; }; 14286A481A672E6300A095F6 /* d2x-editor-soft */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "d2x-editor-soft"; sourceTree = BUILT_PRODUCTS_DIR; }; + 144BC0311A74C40E001A6048 /* gr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gr.c; sourceTree = ""; }; + 144BC0351A74D0D0001A6048 /* vid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vid.h; sourceTree = ""; }; 146694D11A2729860070D41D /* 2dsline.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = 2dsline.c; sourceTree = ""; }; 146694D21A2729860070D41D /* bitblt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bitblt.c; sourceTree = ""; }; 146694D31A2729860070D41D /* bitmap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bitmap.c; sourceTree = ""; }; @@ -633,7 +638,7 @@ 146695321A2729860070D41D /* disk.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = disk.c; sourceTree = ""; }; 146695331A2729860070D41D /* dpmi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dpmi.c; sourceTree = ""; }; 146695341A2729860070D41D /* findfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = findfile.c; sourceTree = ""; }; - 146695351A2729860070D41D /* gr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gr.c; sourceTree = ""; }; + 146695351A2729860070D41D /* vid.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vid.c; sourceTree = ""; }; 146695371A2729860070D41D /* commlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = commlib.h; sourceTree = ""; }; 146695381A2729860070D41D /* disk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = disk.h; sourceTree = ""; }; 146695391A2729860070D41D /* dzcomm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dzcomm.h; sourceTree = ""; }; @@ -697,14 +702,14 @@ 146695861A2729860070D41D /* timer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = timer.c; sourceTree = ""; }; 146695871A2729860070D41D /* ukali.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ukali.c; sourceTree = ""; }; 1466958B1A2729860070D41D /* glx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = glx.c; sourceTree = ""; }; - 1466958C1A2729860070D41D /* gr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gr.c; sourceTree = ""; }; + 1466958C1A2729860070D41D /* vid.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vid.c; sourceTree = ""; }; 1466958D1A2729860070D41D /* internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = internal.h; sourceTree = ""; }; 146695901A2729860070D41D /* ogl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ogl.c; sourceTree = ""; }; 146695911A2729860070D41D /* sdlgl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sdlgl.c; sourceTree = ""; }; 146695921A2729860070D41D /* wgl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = wgl.c; sourceTree = ""; }; 146695941A2729860070D41D /* digi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = digi.c; sourceTree = ""; }; 146695951A2729860070D41D /* event.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = event.c; sourceTree = ""; }; - 146695961A2729860070D41D /* gr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gr.c; sourceTree = ""; }; + 146695961A2729860070D41D /* vid.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vid.c; sourceTree = ""; }; 146695971A2729860070D41D /* init.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = init.c; sourceTree = ""; }; 146695981A2729860070D41D /* joy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = joy.c; sourceTree = ""; }; 146695991A2729860070D41D /* joydefs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = joydefs.c; sourceTree = ""; }; @@ -713,7 +718,7 @@ 1466959E1A2729860070D41D /* rbaudio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rbaudio.c; sourceTree = ""; }; 1466959F1A2729860070D41D /* timer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = timer.c; sourceTree = ""; }; 146695A11A2729860070D41D /* event.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = event.c; sourceTree = ""; }; - 146695A21A2729860070D41D /* gr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gr.c; sourceTree = ""; }; + 146695A21A2729860070D41D /* vid.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vid.c; sourceTree = ""; }; 146695A31A2729860070D41D /* init.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = init.c; sourceTree = ""; }; 146695A41A2729860070D41D /* key.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = key.c; sourceTree = ""; }; 146695A71A2729860070D41D /* mouse.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mouse.c; sourceTree = ""; }; @@ -742,7 +747,7 @@ 146695C01A2729860070D41D /* descent.ico */ = {isa = PBXFileReference; lastKnownFileType = image.ico; path = descent.ico; sourceTree = ""; }; 146695C11A2729860070D41D /* digi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = digi.c; sourceTree = ""; }; 146695C21A2729860070D41D /* glinit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = glinit.c; sourceTree = ""; }; - 146695C31A2729860070D41D /* gr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gr.c; sourceTree = ""; }; + 146695C31A2729860070D41D /* vid.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vid.c; sourceTree = ""; }; 146695C41A2729860070D41D /* hmpfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = hmpfile.c; sourceTree = ""; }; 146695C61A2729860070D41D /* d3dhelp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = d3dhelp.h; sourceTree = ""; }; 146695C71A2729860070D41D /* debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = debug.h; sourceTree = ""; }; @@ -1239,6 +1244,7 @@ 146694D91A2729860070D41D /* disc.c */, 146694DA1A2729860070D41D /* font.c */, 146694DB1A2729860070D41D /* gpixel.c */, + 144BC0311A74C40E001A6048 /* gr.c */, 146694DC1A2729860070D41D /* ibitblt.c */, 146694DD1A2729860070D41D /* line.c */, 146694DE1A2729860070D41D /* linear.asm */, @@ -1329,7 +1335,7 @@ 146695321A2729860070D41D /* disk.c */, 146695331A2729860070D41D /* dpmi.c */, 146695341A2729860070D41D /* findfile.c */, - 146695351A2729860070D41D /* gr.c */, + 146695351A2729860070D41D /* vid.c */, 146695361A2729860070D41D /* include */, 1466953C1A2729860070D41D /* init.c */, 1466953D1A2729860070D41D /* ipx.c */, @@ -1475,6 +1481,7 @@ 146695671A2729860070D41D /* joy.h */, 146695681A2729860070D41D /* key.h */, 146695691A2729860070D41D /* mouse.h */, + 144BC0351A74D0D0001A6048 /* vid.h */, ); path = include; sourceTree = ""; @@ -1524,7 +1531,7 @@ isa = PBXGroup; children = ( 1466958B1A2729860070D41D /* glx.c */, - 1466958C1A2729860070D41D /* gr.c */, + 1466958C1A2729860070D41D /* vid.c */, 1466958D1A2729860070D41D /* internal.h */, 146695901A2729860070D41D /* ogl.c */, 146695911A2729860070D41D /* sdlgl.c */, @@ -1538,7 +1545,7 @@ children = ( 146695941A2729860070D41D /* digi.c */, 146695951A2729860070D41D /* event.c */, - 146695961A2729860070D41D /* gr.c */, + 146695961A2729860070D41D /* vid.c */, 146695971A2729860070D41D /* init.c */, 146695981A2729860070D41D /* joy.c */, 146695991A2729860070D41D /* joydefs.c */, @@ -1554,7 +1561,7 @@ isa = PBXGroup; children = ( 146695A11A2729860070D41D /* event.c */, - 146695A21A2729860070D41D /* gr.c */, + 146695A21A2729860070D41D /* vid.c */, 146695A31A2729860070D41D /* init.c */, 146695A41A2729860070D41D /* key.c */, 146695A71A2729860070D41D /* mouse.c */, @@ -1573,7 +1580,7 @@ 146695C01A2729860070D41D /* descent.ico */, 146695C11A2729860070D41D /* digi.c */, 146695C21A2729860070D41D /* glinit.c */, - 146695C31A2729860070D41D /* gr.c */, + 146695C31A2729860070D41D /* vid.c */, 146695C41A2729860070D41D /* hmpfile.c */, 146695C51A2729860070D41D /* include */, 146695D51A2729860070D41D /* init.c */, @@ -2198,7 +2205,7 @@ buildActionMask = 2147483647; files = ( 142869B51A672E6300A095F6 /* tmapflat.c in Sources */, - 142869B61A672E6300A095F6 /* gr.c in Sources */, + 142869B61A672E6300A095F6 /* vid.c in Sources */, 14286A671A67313E00A095F6 /* medrobot.c in Sources */, 142869B71A672E6300A095F6 /* SDLMain.m in Sources */, 142869B81A672E6300A095F6 /* init.c in Sources */, @@ -2394,6 +2401,7 @@ 14286A3A1A672E6300A095F6 /* pcx.c in Sources */, 14286A871A67330000A095F6 /* uidraw.c in Sources */, 14286A3B1A672E6300A095F6 /* pixel.c in Sources */, + 144BC0321A74C611001A6048 /* gr.c in Sources */, 14286A3C1A672E6300A095F6 /* rect.c in Sources */, 14286A3D1A672E6300A095F6 /* rle.c in Sources */, 14286A3E1A672E6300A095F6 /* scalec.c in Sources */, @@ -2405,7 +2413,7 @@ buildActionMask = 2147483647; files = ( 14F0D58F1A4CABD400682BB0 /* SDLMain.m in Sources */, - 14F0D58A1A4CA79400682BB0 /* gr.c in Sources */, + 14F0D58A1A4CA79400682BB0 /* vid.c in Sources */, 14F0D58B1A4CA79400682BB0 /* ogl.c in Sources */, 14F0D58C1A4CA79400682BB0 /* sdlgl.c in Sources */, 14F0D5821A4CA77300682BB0 /* init.c in Sources */, @@ -2454,6 +2462,7 @@ 14F0D5331A4CA50D00682BB0 /* crypt.c in Sources */, 14F0D5341A4CA50D00682BB0 /* cvar.c in Sources */, 14F0D5351A4CA50D00682BB0 /* digiobj.c in Sources */, + 144BC0341A74C612001A6048 /* gr.c in Sources */, 14F0D5361A4CA50D00682BB0 /* effects.c in Sources */, 14F0D5371A4CA50D00682BB0 /* endlevel.c in Sources */, 14F0D5381A4CA50D00682BB0 /* escort.c in Sources */, @@ -2564,7 +2573,8 @@ buildActionMask = 2147483647; files = ( 14F0D62A1A4CB3CB00682BB0 /* tmapflat.c in Sources */, - 14F0D6291A4CB3B100682BB0 /* gr.c in Sources */, + 14F0D6291A4CB3B100682BB0 /* vid.c in Sources */, + 144BC0331A74C611001A6048 /* gr.c in Sources */, 14F0D5941A4CB34F00682BB0 /* SDLMain.m in Sources */, 14F0D5981A4CB34F00682BB0 /* init.c in Sources */, 14F0D5991A4CB34F00682BB0 /* ipx_kali.c in Sources */, diff --git a/include/gr.h b/include/gr.h index 809825af..65bb9b2a 100644 --- a/include/gr.h +++ b/include/gr.h @@ -171,6 +171,7 @@ typedef struct _grs_screen { // This is a video screen #include "console.h" +#include "palette.h" //========================================================================= @@ -185,10 +186,6 @@ int gr_init(void); // the video mode changes. int gr_init_screen(int mode, int w, int h, int x, int y, int rowsize, ubyte *data); -int gr_check_mode(uint32_t mode); -int gr_set_mode(uint32_t mode); - - // These 4 functions actuall change screen colors. extern void gr_pal_fade_out(unsigned char * pal); @@ -460,36 +457,5 @@ extern void gr_merge_textures_1( ubyte * lower, ubyte * upper, ubyte * dest ); extern void gr_merge_textures_2( ubyte * lower, ubyte * upper, ubyte * dest ); extern void gr_merge_textures_3( ubyte * lower, ubyte * upper, ubyte * dest ); -extern void gr_update(void); - -/* - * currently SDL and OGL are the only things that supports toggling - * fullscreen. otherwise add other checks to the #if -MPM - */ -#if (defined(SDL_VIDEO) || defined(OGL)) -#define GR_SUPPORTS_FULLSCREEN_TOGGLE - -/* - * must return 0 if windowed, 1 if fullscreen - */ -int gr_check_fullscreen(void); - -/* - * returns state after toggling (ie, same as if you had called - * check_fullscreen immediatly after) - */ -int gr_toggle_fullscreen(void); - -#endif /* defined(SDL_VIDEO) || defined(OGL)) */ - -/* currently only OGL can toggle in the menus, because its screen data - * is not used (and stays in the same place). whereas software modes, - * toggling fullscreen would very likely make the data buffer point to - * a different location, and all the subbitmaps of it would have - * invalid addresses in them. */ -#ifdef OGL -#define GR_SUPPORTS_FULLSCREEN_MENU_TOGGLE -#endif -int gr_toggle_fullscreen_menu(void);//returns state after toggling (ie, same as if you had called check_fullscreen immediatly after) #endif /* def _GR_H */ diff --git a/main/automap.c b/main/automap.c index 46d89805..28474fc7 100644 --- a/main/automap.c +++ b/main/automap.c @@ -72,6 +72,8 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "switch.h" #include "automap.h" #include "cntrlcen.h" +#include "vid.h" + #ifdef OGL #define AUTOMAP_DIRECT_RENDER @@ -530,7 +532,7 @@ void draw_automap() //gr_bm_ubitblt( Page.cv_bitmap.bm_w, Page.cv_bitmap.bm_h, Page.cv_bitmap.bm_x, Page.cv_bitmap.bm_y, 0, 0, &Page.cv_bitmap, &VR_screen_pages[0].cv_bitmap ); gr_bm_ubitblt( Page.cv_bitmap.bm_w, Page.cv_bitmap.bm_h, Page.cv_bitmap.bm_x, Page.cv_bitmap.bm_y, 0, 0, &Page.cv_bitmap, &grd_curscreen->sc_canvas.cv_bitmap ); } - gr_update(); + vid_update(); #endif #endif } @@ -694,7 +696,7 @@ void do_automap( int key_code ) { if (SM_HIRES2 || (Automap_always_hires.intval && MenuHiresAvailable)) { //edit 4/23/99 Matt Mueller - don't switch res unless we need to if (grd_curscreen->sc_mode != AUTOMAP_MODE) - gr_set_mode( AUTOMAP_MODE ); + vid_set_mode( AUTOMAP_MODE ); else gr_set_current_canvas(NULL); //end edit -MM @@ -703,7 +705,7 @@ void do_automap( int key_code ) { AutomapHires = 1; } else { - gr_set_mode( SM(320, 400)); + vid_set_mode(SM(320, 400)); AutomapHires = 0; } @@ -1018,7 +1020,7 @@ void do_automap( int key_code ) { case KEY_COMMAND+KEY_SHIFTED+KEY_F: case KEY_ALTED+KEY_ENTER: case KEY_ALTED+KEY_PADENTER: - gr_toggle_fullscreen_game(); + game_toggle_fullscreen(); break; //end addition -MM diff --git a/main/credits.c b/main/credits.c index 7f70dc76..4d92d2c3 100644 --- a/main/credits.c +++ b/main/credits.c @@ -30,9 +30,9 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "error.h" #include "pstypes.h" #include "gr.h" +#include "vid.h" #include "mono.h" #include "key.h" -#include "palette.h" #include "inferno.h" #include "gamepal.h" #include "timer.h" @@ -191,7 +191,7 @@ void credits_show(char *credits_filename) gr_set_current_canvas(NULL); gr_bitmap(0,0,&backdrop); - gr_update(); + vid_update(); gr_palette_fade_in( gr_palette, 32, 0 ); // Create a new offscreen buffer for the credits screen @@ -351,8 +351,7 @@ get_line:; } #endif - gr_update(); - + vid_update(); } // Wacky Fast Credits thing doesn't need this (it's done above) diff --git a/main/editor/med.c b/main/editor/med.c index d82eaf9e..68e6eda9 100644 --- a/main/editor/med.c +++ b/main/editor/med.c @@ -633,7 +633,7 @@ int DosShell() save_bitmap = gr_create_bitmap( w, h ); gr_bm_ubitblt(w, h, 0, 0, 0, 0, &(grd_curscreen->sc_canvas.cv_bitmap), save_bitmap ); - // gr_set_mode( SM_ORIGINAL ); + //vid_set_mode( SM_ORIGINAL ); printf( "\n\nType EXIT to return to Inferno" ); fflush(stdout); @@ -646,7 +646,7 @@ int DosShell() #endif key_init(); - gr_set_mode(grd_curscreen->sc_mode); + vid_set_mode(grd_curscreen->sc_mode); gr_bm_ubitblt(w, h, 0, 0, 0, 0, save_bitmap, &(grd_curscreen->sc_canvas.cv_bitmap)); gr_free_bitmap( save_bitmap ); //gr_pal_setblock( 0, 256, grd_curscreen->pal ); @@ -1372,8 +1372,7 @@ void editor(void) ui_mouse_show(); } - gr_update(); - + vid_update(); } // _MARK_("end of editor");//Nuked to compile -KRB diff --git a/main/escort.c b/main/escort.c index d049c8bc..f80269dd 100644 --- a/main/escort.c +++ b/main/escort.c @@ -31,7 +31,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "vecmat.h" #include "gr.h" #include "3d.h" -#include "palette.h" +#include "vid.h" #include "object.h" #include "error.h" @@ -1960,7 +1960,7 @@ void show_escort_menu(char *msg) nm_draw_background(x-15,y-15,x+w+15-1,y+h+15-1); gr_ustring( x, y, msg ); - gr_update(); + vid_update(); reset_cockpit(); } diff --git a/main/game.c b/main/game.c index 8818e14c..bc2d30d9 100644 --- a/main/game.c +++ b/main/game.c @@ -110,8 +110,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "robot.h" #include "fix.h" #include "hudmsg.h" - -uint32_t VGA_current_mode; +#include "vid.h" #ifdef MWPROFILER #include @@ -675,7 +674,7 @@ int set_screen_mode(int sm) } #endif - if ( Screen_mode == sm && VGA_current_mode == VR_screen_mode) { + if ( Screen_mode == sm && Vid_current_mode == VR_screen_mode) { gr_set_current_canvas( &VR_screen_pages[VR_current_page] ); return 1; } @@ -704,8 +703,8 @@ int set_screen_mode(int sm) menu_mode = MenuHires?SM(640,480):SM(320,200); - if (VGA_current_mode != menu_mode) { - if (gr_set_mode(menu_mode)) + if (Vid_current_mode != menu_mode) { + if (vid_set_mode(menu_mode)) Error("Cannot set screen mode for menu"); if (!gr_palette_faded_out) gr_palette_load(gr_palette); @@ -723,8 +722,8 @@ int set_screen_mode(int sm) break; case SCREEN_GAME: - if (VGA_current_mode != VR_screen_mode) { - if (gr_set_mode(VR_screen_mode)) { + if (Vid_current_mode != VR_screen_mode) { + if (vid_set_mode(VR_screen_mode)) { Error("Cannot set desired screen mode for game!"); //we probably should do something else here, like select a standard mode } @@ -788,7 +787,7 @@ int set_screen_mode(int sm) case SCREEN_EDITOR: if (grd_curscreen->sc_mode != SM(800,600)) { int gr_error; - if ((gr_error=gr_set_mode(SM(800,600)))!=0) { //force into game scrren + if ((gr_error = vid_set_mode(SM(800,600))) != 0) { // force into game scrren Warning("Cannot init editor screen (error=%d)",gr_error); return 0; } @@ -820,10 +819,12 @@ int set_screen_mode(int sm) return 1; } -int gr_toggle_fullscreen_game(void){ -#ifdef GR_SUPPORTS_FULLSCREEN_TOGGLE + +int game_toggle_fullscreen(void) +{ +#ifdef VID_SUPPORTS_FULLSCREEN_TOGGLE int i; - hud_message(MSGC_GAME_FEEDBACK, "toggling fullscreen mode %s",(i=gr_toggle_fullscreen())?"on":"off" ); + hud_message(MSGC_GAME_FEEDBACK, "toggling fullscreen mode %s", (i = vid_toggle_fullscreen())?"on":"off" ); //added 2000/06/19 Matthew Mueller - hack to fix "infinite toggle" problem //it seems to be that the screen mode change takes long enough that the key has already sent repeat codes, or that its unpress event gets dropped, etc. This is a somewhat ugly fix, but it works. // generic_key_handler(KEY_PADENTER,0); @@ -837,12 +838,12 @@ int gr_toggle_fullscreen_game(void){ #endif } -int arch_toggle_fullscreen_menu(void); -int gr_toggle_fullscreen_menu(void){ -#ifdef GR_SUPPORTS_FULLSCREEN_MENU_TOGGLE +int game_toggle_fullscreen_menu(void){ +#ifdef VID_SUPPORTS_FULLSCREEN_MENU_TOGGLE int i; - i=arch_toggle_fullscreen_menu(); + + i = vid_toggle_fullscreen_menu(); // generic_key_handler(KEY_PADENTER,0); // generic_key_handler(KEY_ENTER, 0); diff --git a/main/game.h b/main/game.h index 715fc1dc..2aaa8ae3 100644 --- a/main/game.h +++ b/main/game.h @@ -236,7 +236,7 @@ void enable_flicker(int segnum, int sidenum); // returns 1 if ok, 0 if error int add_flicker(int segnum, int sidenum, fix delay, unsigned long mask); -int gr_toggle_fullscreen_game(void); +int game_toggle_fullscreen(void); /* * reads a flickering_light structure from a CFILE diff --git a/main/gamecntl.c b/main/gamecntl.c index 95811fc0..2ab10f90 100644 --- a/main/gamecntl.c +++ b/main/gamecntl.c @@ -58,7 +58,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "digi.h" #include "ibitblt.h" #include "u_mem.h" -#include "palette.h" #include "morph.h" #include "lighting.h" #include "newdemo.h" @@ -80,6 +79,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "mouse.h" #include "titles.h" #include "gr.h" +#include "vid.h" #include "movie.h" #include "scores.h" #ifdef MACINTOSH @@ -486,7 +486,7 @@ int do_game_pause() sprintf(msg,"PAUSE\n\nSkill level: %s\nHostages on board: %d\n",(*(&TXT_DIFFICULTY_1 + (Difficulty_level))),Players[Player_num].hostages_on_board); show_boxed_message(Pause_msg=msg); //TXT_PAUSE); - gr_update(); + vid_update(); while (Game_paused) { @@ -1293,7 +1293,7 @@ int HandleSystemKey(int key) case KEY_COMMAND+KEY_SHIFTED+KEY_F: case KEY_ALTED+KEY_ENTER: case KEY_ALTED+KEY_PADENTER: - gr_toggle_fullscreen_game(); + game_toggle_fullscreen(); break; //end addition -MM diff --git a/main/gamerend.c b/main/gamerend.c index 3e7e5d2e..35f28548 100644 --- a/main/gamerend.c +++ b/main/gamerend.c @@ -31,7 +31,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "error.h" #include "mono.h" #include "gr.h" -#include "palette.h" +#include "vid.h" #include "ibitblt.h" #include "bm.h" #include "player.h" @@ -1045,7 +1045,7 @@ void game_render_frame_mono(void) CON_DrawConsole(); - gr_update(); + vid_update(); #ifdef OGL ogl_swap_buffers(); #endif diff --git a/main/gameseq.c b/main/gameseq.c index 1ec2537e..bab9a17a 100644 --- a/main/gameseq.c +++ b/main/gameseq.c @@ -37,6 +37,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "inferno.h" #include "game.h" #include "player.h" +#include "vid.h" #include "key.h" #include "object.h" #include "physics.h" @@ -762,7 +763,7 @@ void LoadLevel(int level_num,int page_in_textures) #if 1 //def OGL gr_palette_load(gr_palette); show_boxed_message(TXT_LOADING); - gr_update(); + vid_update(); #else show_boxed_message(TXT_LOADING); gr_palette_load(gr_palette); diff --git a/main/inferno.c b/main/inferno.c index 1ead54c9..19d1ddd0 100644 --- a/main/inferno.c +++ b/main/inferno.c @@ -46,6 +46,7 @@ char copyright[] = "DESCENT II COPYRIGHT (C) 1994-1996 PARALLAX SOFTWARE CORPOR #include "strutil.h" #include "console.h" #include "gr.h" +#include "vid.h" #include "fix.h" #include "vecmat.h" #include "mono.h" @@ -311,7 +312,7 @@ void print_commandline_help() printf(" -ihaveabrokenmouse %s\n", "try to make mouse work if it is not currently"); printf( " -joy209 %s\n", "Use alternate port 209 for joystick"); #endif -#ifdef GR_SUPPORTS_FULLSCREEN_TOGGLE +#ifdef VID_SUPPORTS_FULLSCREEN_TOGGLE printf( " -fullscreen %s\n", "Use fullscreen mode if available"); #endif #ifdef OGL @@ -323,7 +324,7 @@ void print_commandline_help() printf(" -gl_anisotropy %s\n", "set maximum degree of anisotropy to "); printf( " -gl_alttexmerge %s\n","use new texmerge, usually uses less ram (default)"); printf( " -gl_stdtexmerge %s\n","use old texmerge, uses more ram, but _might_ be a bit faster"); -#ifdef GR_SUPPORTS_FULLSCREEN_TOGGLE +#ifdef VID_SUPPORTS_FULLSCREEN_TOGGLE printf( " -gl_voodoo %s\n","force fullscreen mode only"); #endif printf( " -gl_16bittextures %s\n","attempt to use 16bit textures"); @@ -575,11 +576,11 @@ int main(int argc, char *argv[]) Lighting_on = 1; -// if (init_graphics()) return 1; + if (vid_init()) + return 1; #ifdef EDITOR - if (gr_check_mode(SM(800, 600)) != 0) - { + if (vid_check_mode(SM(800, 600)) != 0) { con_printf(CON_NORMAL, "The editor will not be available, press any key to start game...\n" ); Function_mode = FMODE_MENU; } @@ -634,7 +635,7 @@ int main(int argc, char *argv[]) grd_fades_disabled=1; //determine whether we're using high-res menus & movies - if (FindArg("-nohires") || FindArg("-nohighres") || (gr_check_mode(MENU_HIRES_MODE) != 0) || disable_high_res) + if (FindArg("-nohires") || FindArg("-nohighres") || (vid_check_mode(MENU_HIRES_MODE) != 0) || disable_high_res) cvar_setint( &MovieHires, MenuHires = MenuHiresAvailable = 0 ); else //NOTE LINK TO ABOVE! @@ -644,7 +645,7 @@ int main(int argc, char *argv[]) cvar_setint( &MovieHires, 0 ); con_printf(CON_VERBOSE, "Going into graphics mode...\n"); - gr_set_mode(MovieHires.intval?SM(640,480):SM(320,200)); + vid_set_mode(MovieHires.intval?SM(640,480):SM(320,200)); // Load the palette stuff. Returns non-zero if error. con_printf(CON_DEBUG, "Initializing palette system...\n" ); diff --git a/main/kconfig.c b/main/kconfig.c index 429a99c5..f4f7afbd 100644 --- a/main/kconfig.c +++ b/main/kconfig.c @@ -34,6 +34,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "error.h" #include "pstypes.h" #include "gr.h" +#include "vid.h" #include "mono.h" #include "key.h" #include "palette.h" @@ -642,7 +643,7 @@ void kconfig_sub(kc_item * items,int nitems, char * title) while(1) { // Windows addendum to allow for kconfig input. - gr_update(); + vid_update(); //see if redbook song needs to be restarted songs_check_redbook_repeat(); @@ -964,7 +965,7 @@ void kc_drawquestion( kc_item *item ) x = LHX(item->w1+item->x)+((LHX(item->w2)-w)/2); gr_string( x, LHY(item->y), "?" ); -gr_update(); + vid_update(); } void kc_change_key( kc_item * item ) diff --git a/main/menu.c b/main/menu.c index caf68a10..e433e40a 100644 --- a/main/menu.c +++ b/main/menu.c @@ -27,6 +27,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "inferno.h" #include "game.h" #include "gr.h" +#include "vid.h" #include "key.h" #include "iff.h" #include "u_mem.h" @@ -712,7 +713,7 @@ void set_display_mode(uint32_t mode) if (!MenuHiresAvailable && (mode != SM(320,400))) mode = SM(320,200); - if (gr_check_mode(mode) != 0) //can't do mode + if (vid_check_mode(mode) != 0) // can't do mode mode = Default_display_mode; Current_display_mode = mode; @@ -756,7 +757,7 @@ void set_display_mode(uint32_t mode) void do_screen_res_menu() { #define N_SCREENRES_ITEMS 12 -#ifdef GR_SUPPORTS_FULLSCREEN_TOGGLE +#ifdef VID_SUPPORTS_FULLSCREEN_TOGGLE int fullscreenc; #endif newmenu_item m[N_SCREENRES_ITEMS]; @@ -793,9 +794,9 @@ void do_screen_res_menu() sprintf(customres, "%ix%i", SM_W(Current_display_mode), SM_H(Current_display_mode)); m[i].type = NM_TYPE_INPUT; m[i].text = customres; m[i].text_len = 11; modes[i] = 0; i++; -#ifdef GR_SUPPORTS_FULLSCREEN_TOGGLE +#ifdef VID_SUPPORTS_FULLSCREEN_TOGGLE m[i].type = NM_TYPE_CHECK; m[i].text = "Fullscreen"; - m[i].value = gr_check_fullscreen(); + m[i].value = vid_check_fullscreen(); fullscreenc = i++; #endif @@ -813,9 +814,9 @@ void do_screen_res_menu() newmenu_do1( NULL, "Select screen mode", n_items, m, NULL, citem); -#ifdef GR_SUPPORTS_FULLSCREEN_TOGGLE - if (m[fullscreenc].value != gr_check_fullscreen()){ - gr_toggle_fullscreen(); +#ifdef VID_SUPPORTS_FULLSCREEN_TOGGLE + if (m[fullscreenc].value != vid_check_fullscreen()) { + vid_toggle_fullscreen(); Game_screen_mode = -1; } #endif @@ -836,7 +837,7 @@ void do_screen_res_menu() screen_mode = modes[i]; } - if (((SM_H(screen_mode) > 320) && !MenuHiresAvailable) || gr_check_mode(screen_mode)) { + if (((SM_H(screen_mode) > 320) && !MenuHiresAvailable) || vid_check_mode(screen_mode)) { nm_messagebox(TXT_SORRY, 1, TXT_OK, "Cannot set requested\n" "mode on this video card."); diff --git a/main/movie.c b/main/movie.c index 0f4bdb8c..500541ac 100644 --- a/main/movie.c +++ b/main/movie.c @@ -47,6 +47,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "u_mem.h" #include "byteswap.h" #include "gr.h" +#include "vid.h" #include "gamefont.h" #include "cfile.h" #include "menu.h" @@ -253,7 +254,7 @@ void show_pause_message(char *msg) gr_ustring( 0x8000, y, msg ); - gr_update(); + vid_update(); } void clear_pause_message() @@ -298,9 +299,9 @@ int RunMovie(char *filename, int hires_flag, int must_have,int dx,int dy) MVE_palCallbacks(MovieSetPalette); if (hires_flag) { - gr_set_mode(SM(640,480)); + vid_set_mode(SM(640,480)); } else { - gr_set_mode(SM(320,200)); + vid_set_mode(SM(320,200)); } #ifdef OGL set_screen_mode(SCREEN_MENU); @@ -319,7 +320,7 @@ int RunMovie(char *filename, int hires_flag, int must_have,int dx,int dy) draw_subtitles(frame_num); - gr_update(); + vid_update(); key = key_inkey(); @@ -337,11 +338,11 @@ int RunMovie(char *filename, int hires_flag, int must_have,int dx,int dy) clear_pause_message(); } -#ifdef GR_SUPPORTS_FULLSCREEN_TOGGLE +#ifdef VID_SUPPORTS_FULLSCREEN_TOGGLE if ((key == KEY_COMMAND+KEY_SHIFTED+KEY_F) || (key == KEY_ALTED+KEY_ENTER) || (key == KEY_ALTED+KEY_PADENTER)) - gr_toggle_fullscreen(); + vid_toggle_fullscreen(); #endif frame_num++; @@ -365,9 +366,9 @@ int InitMovieBriefing() { #if 0 if (MenuHires) - gr_set_mode(SM(640,480)); + vid_set_mode(SM(640,480)); else - gr_set_mode(SM(320,200)); + vid_set_mode(SM(320,200)); gr_init_sub_canvas( &VR_screen_pages[0], &grd_curscreen->sc_canvas, 0, 0, grd_curscreen->sc_w, grd_curscreen->sc_h ); gr_init_sub_canvas( &VR_screen_pages[1], &grd_curscreen->sc_canvas, 0, 0, grd_curscreen->sc_w, grd_curscreen->sc_h ); diff --git a/main/newmenu.c b/main/newmenu.c index 03c060ca..65f566fd 100644 --- a/main/newmenu.c +++ b/main/newmenu.c @@ -36,6 +36,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "error.h" #include "pstypes.h" #include "gr.h" +#include "vid.h" #include "mono.h" #include "songs.h" #include "key.h" @@ -1047,7 +1048,7 @@ int newmenu_do4( char * title, char * subtitle, int nitems, newmenu_item * item, done = 0; TopChoice=choice; - gr_update(); + vid_update(); // Clear mouse, joystick to clear button presses. game_flush_inputs(); @@ -1788,7 +1789,7 @@ int newmenu_do4( char * title, char * subtitle, int nitems, newmenu_item * item, if (i==choice && (item[i].type==NM_TYPE_INPUT || (item[i].type==NM_TYPE_INPUT_MENU && item[i].group))) update_cursor( &item[i]); } - gr_update(); + vid_update(); if (IsScrollBox) { @@ -2166,7 +2167,7 @@ ReadFileNames: while(!done) { ocitem = citem; ofirst_item = first_item; - gr_update(); + vid_update(); #ifdef NEWMENU_MOUSE omouse_state = mouse_state; @@ -2919,7 +2920,7 @@ int newmenu_listbox1( char * title, int nitems, char * items[], int allow_abort_ newmenu_show_cursor(); - gr_update(); + vid_update(); } else if ( citem != ocitem ) { int w, h, aw, y; @@ -2950,7 +2951,7 @@ int newmenu_listbox1( char * title, int nitems, char * items[], int allow_abort_ } newmenu_show_cursor(); - gr_update(); + vid_update(); } } newmenu_hide_cursor(); diff --git a/main/scores.c b/main/scores.c index 3f505c7c..db505a85 100644 --- a/main/scores.c +++ b/main/scores.c @@ -30,6 +30,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "error.h" #include "pstypes.h" #include "gr.h" +#include "vid.h" #include "mono.h" #include "key.h" #include "palette.h" @@ -398,7 +399,7 @@ ReshowScores: gr_palette_fade_in( gr_palette,32, 0); #ifdef OGL - gr_update(); + vid_update(); #endif game_flush_inputs(); @@ -420,7 +421,7 @@ ReshowScores: scores_draw_item( MAX_HIGH_SCORES, &Last_game ); else scores_draw_item( citem, &Scores.stats[citem] ); - gr_update(); + vid_update(); } for (i=0; i<4; i++ ) diff --git a/main/titles.c b/main/titles.c index 3c2280a2..914c71a4 100644 --- a/main/titles.c +++ b/main/titles.c @@ -37,7 +37,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "timer.h" #include "key.h" #include "gr.h" -#include "palette.h" +#include "vid.h" #include "iff.h" #include "pcx.h" #include "u_mem.h" @@ -260,7 +260,7 @@ void show_titles(void) { char filename[FILENAME_LEN]; - gr_set_mode(MenuHires?SM(640,480):SM(320,200)); + vid_set_mode(MenuHires?SM(640,480):SM(320,200)); #ifdef OGL set_screen_mode(SCREEN_MENU); #endif @@ -333,7 +333,7 @@ void show_loading_screen(ubyte *title_pal) if (! cfexist(filename)) strcpy(filename, "descentb.pcx"); // MAC SHAREWARE - gr_set_mode(MenuHires?SM(640,480):SM(320,200)); + vid_set_mode(MenuHires?SM(640,480):SM(320,200)); #ifdef OGL set_screen_mode(SCREEN_MENU); #endif @@ -344,7 +344,7 @@ void show_loading_screen(ubyte *title_pal) //vfx_set_palette_sub( title_pal ); gr_palette_clear(); gr_palette_fade_in( title_pal, 32, 0 ); - gr_update(); + vid_update(); } else Error( "Couldn't load pcx file '%s', PCX load error: %s\n",filename, pcx_errormsg(pcx_error)); } @@ -646,7 +646,7 @@ int show_char_delay(char the_char, int delay, int robot_num, int cursor_flag) if (cursor_flag && delay) { gr_set_fontcolor(Briefing_foreground_colors[Current_color], -1); gr_printf(Briefing_text_x+1, Briefing_text_y, "_" ); - gr_update(); + vid_update(); } if ((Bitmap_name[0] != 0) && (delay != 0)) @@ -659,7 +659,7 @@ int show_char_delay(char the_char, int delay, int robot_num, int cursor_flag) show_spinning_robot_frame(robot_num); while (timer_get_fixed_seconds() < (start_time + delay)) { - gr_update(); + vid_update(); if (RobotPlaying && delay != 0) RotateRobot(); @@ -688,7 +688,7 @@ int show_char_delay(char the_char, int delay, int robot_num, int cursor_flag) gr_set_fontcolor(Briefing_foreground_colors[Current_color], -1); gr_printf(Briefing_text_x+1, Briefing_text_y, message ); - if (delay) gr_update(); + if (delay) vid_update(); // if (the_char != ' ') // if (!digi_is_sound_playing(SOUND_MARKER_HIT)) @@ -784,7 +784,7 @@ void flash_cursor(int cursor_flag) gr_set_fontcolor(Erase_color, -1); gr_printf(Briefing_text_x+1, Briefing_text_y, "_" ); - gr_update(); + vid_update(); } extern int InitMovieBriefing(); @@ -1048,7 +1048,7 @@ int show_briefing_message(int screen_num, char *message) digi_stop_sound( printing_channel ); printing_channel=-1; - gr_update(); + vid_update(); while ( (keypress = local_key_inkey()) == 0 ) { // Wait for a key start_time = timer_get_fixed_seconds(); @@ -1088,7 +1088,7 @@ int show_briefing_message(int screen_num, char *message) } message++; prev_ch = 10; - gr_update(); + vid_update(); } } else if (ch == '\t') { // Tab if (Briefing_text_x - bsp->text_ulx < tab_stop) @@ -1160,11 +1160,11 @@ int show_briefing_message(int screen_num, char *message) if ((key_check == KEY_SPACEBAR) || (key_check == KEY_ENTER)) delay_count = 0; -#ifdef GR_SUPPORTS_FULLSCREEN_TOGGLE +#ifdef VID_SUPPORTS_FULLSCREEN_TOGGLE if ((key_check == KEY_COMMAND+KEY_SHIFTED+KEY_F) || (key_check == KEY_ALTED+KEY_ENTER) || (key_check == KEY_ALTED+KEY_PADENTER)) - gr_toggle_fullscreen(); + vid_toggle_fullscreen(); #endif if (Briefing_text_x > bsp->text_ulx + bsp->text_width) { @@ -1186,7 +1186,7 @@ int show_briefing_message(int screen_num, char *message) start_time = timer_get_fixed_seconds(); while ( (keypress = local_key_inkey()) == 0 ) { // Wait for a key - gr_update(); + vid_update(); flash_cursor(flashing_cursor); if (RobotPlaying) RotateRobot(); @@ -1568,7 +1568,7 @@ void show_order_form() if ((pcx_error=pcx_read_fullscr( exit_screen, title_pal ))==PCX_ERROR_NONE) { //vfx_set_palette_sub( title_pal ); gr_palette_fade_in( title_pal, 32, 0 ); - gr_update(); + vid_update(); while (!key_inkey() && !mouse_button_state(0)) {} //key_getch(); gr_palette_fade_out( title_pal, 32, 0 ); } diff --git a/ui/file.c b/ui/file.c index 1cc30f52..46fbd00a 100644 --- a/ui/file.c +++ b/ui/file.c @@ -314,7 +314,7 @@ int ui_get_filename( char * filename, char * Filespec, char * message ) } - gr_update(); + vid_update(); } //key_flush(); diff --git a/ui/keypress.c b/ui/keypress.c index fd857340..5c3b1504 100644 --- a/ui/keypress.c +++ b/ui/keypress.c @@ -130,7 +130,7 @@ int GetKeyCode(char * text) if (DoneButton->pressed) break; - gr_update(); + vid_update(); } ui_close_window(wnd); diff --git a/ui/menu.c b/ui/menu.c index fa8cf00a..6979184c 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -113,7 +113,7 @@ int MenuX( int x, int y, int NumButtons, char * text[] ) break; } - gr_update(); + vid_update(); } ui_close_window(wnd); diff --git a/ui/menubar.c b/ui/menubar.c index 57471bda..a393ea90 100644 --- a/ui/menubar.c +++ b/ui/menubar.c @@ -603,7 +603,7 @@ void menubar_do( int keypress ) } last_keypress = 0; - gr_update(); + vid_update(); } } diff --git a/ui/message.c b/ui/message.c index d9627a88..8769f9b2 100644 --- a/ui/message.c +++ b/ui/message.c @@ -161,7 +161,7 @@ int MessageBoxN( short xc, short yc, int NumButtons, char * text, char * Button[ } } - gr_update(); + vid_update(); } ui_close_window(wnd); diff --git a/ui/number.c b/ui/number.c index 54f443a7..25ec47d5 100644 --- a/ui/number.c +++ b/ui/number.c @@ -102,7 +102,7 @@ double ui_input_number( short xc, short yc, char * text, double OrgNumber ) if (InputBox->pressed) break; - gr_update(); + vid_update(); } ui_close_window(wnd); diff --git a/ui/popup.c b/ui/popup.c index 6acee9f6..8cc26a30 100644 --- a/ui/popup.c +++ b/ui/popup.c @@ -138,7 +138,7 @@ int PopupMenu( int NumButtons, char * text[] ) break; } - gr_update(); + vid_update(); } ui_close_window(wnd); -- 2.39.2