Bit cleaner now.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@515 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
Spoike 2004-11-23 01:08:59 +00:00
parent 991128372e
commit 1a4aa4ae5e
1 changed files with 473 additions and 242 deletions

View File

@ -567,6 +567,9 @@ void (*Draw_FadeScreen) (void);
void (*Draw_BeginDisc) (void);
void (*Draw_EndDisc) (void);
void (*Draw_Image) (float x, float y, float w, float h, float s1, float t1, float s2, float t2, qpic_t *pic); //gl-style scaled/coloured/subpic
void (*Draw_ImageColours) (float r, float g, float b, float a);
void (*R_Init) (void);
void (*R_DeInit) (void);
void (*R_ReInit) (void);
@ -599,6 +602,8 @@ struct mleaf_s *(*Mod_PointInLeaf) (float *p, struct model_s *model);
qbyte *(*Mod_Q1LeafPVS) (struct mleaf_s *leaf, struct model_s *model, qbyte *buffer);
void (*Mod_NowLoadExternal) (void);
void (*Mod_Think) (void);
void (*Mod_GetTag) (struct model_s *model, int tagnum, int frame, float **org, float **axis);
qboolean (*VID_Init) (rendererstate_t *info, unsigned char *palette);
@ -622,7 +627,403 @@ char *q_renderername = "Non-Selected renderer";
struct {
char *name[4];
r_qrenderer_t rtype;
qpic_t *(*Draw_PicFromWad) (char *name);
qpic_t *(*Draw_SafePicFromWad) (char *name);
qpic_t *(*Draw_CachePic) (char *path);
qpic_t *(*Draw_SafeCachePic) (char *path);
void (*Draw_Init) (void);
void (*Draw_ReInit) (void);
void (*Draw_Character) (int x, int y, unsigned int num);
void (*Draw_ColouredCharacter) (int x, int y, unsigned int num);
void (*Draw_String) (int x, int y, const qbyte *str);
void (*Draw_Alt_String) (int x, int y, const qbyte *str);
void (*Draw_Crosshair) (void);
void (*Draw_DebugChar) (qbyte num);
void (*Draw_Pic) (int x, int y, qpic_t *pic);
void (*Draw_ScalePic) (int x, int y, int width, int height, qpic_t *pic);
void (*Draw_SubPic) (int x, int y, qpic_t *pic, int srcx, int srcy, int width, int height);
void (*Draw_TransPic) (int x, int y, qpic_t *pic);
void (*Draw_TransPicTranslate) (int x, int y, qpic_t *pic, qbyte *translation);
void (*Draw_ConsoleBackground) (int lines);
void (*Draw_EditorBackground) (int lines);
void (*Draw_TileClear) (int x, int y, int w, int h);
void (*Draw_Fill) (int x, int y, int w, int h, int c);
void (*Draw_FadeScreen) (void);
void (*Draw_BeginDisc) (void);
void (*Draw_EndDisc) (void);
void (*Draw_Image) (float x, float y, float w, float h, float s1, float t1, float s2, float t2, qpic_t *pic); //gl-style scaled/coloured/subpic
void (*Draw_ImageColours) (float r, float g, float b, float a);
void (*R_Init) (void);
void (*R_DeInit) (void);
void (*R_ReInit) (void);
void (*R_RenderView) (void); // must set r_refdef first
void (*R_InitSky) (struct texture_s *mt); // called at level load
qboolean (*R_CheckSky) (void);
void (*R_SetSky) (char *name, float rotate, vec3_t axis);
void (*R_NewMap) (void);
void (*R_PreNewMap) (void);
int (*R_LightPoint) (vec3_t point);
void (*R_PushDlights) (void);
void (*R_AddStain) (vec3_t org, float red, float green, float blue, float radius);
void (*R_LessenStains) (void);
void (*Media_ShowFrameBGR_24_Flip) (qbyte *framedata, int inwidth, int inheight); //input is bottom up...
void (*Media_ShowFrameRGBA_32) (qbyte *framedata, int inwidth, int inheight); //top down
void (*Media_ShowFrame8bit) (qbyte *framedata, int inwidth, int inheight, qbyte *palette); //paletted topdown (framedata is 8bit indexes into palette)
void (*Mod_Init) (void);
void (*Mod_ClearAll) (void);
struct model_s *(*Mod_ForName) (char *name, qboolean crash);
struct model_s *(*Mod_FindName) (char *name);
void *(*Mod_Extradata) (struct model_s *mod); // handles caching
void (*Mod_TouchModel) (char *name);
struct mleaf_s *(*Mod_PointInLeaf) (float *p, struct model_s *model);
qbyte *(*Mod_Q1LeafPVS) (struct mleaf_s *leaf, struct model_s *model, qbyte *buffer);
void (*Mod_NowLoadExternal) (void);
void (*Mod_Think) (void);
void (*Mod_GetTag) (struct model_s *model, int tagnum, int frame, float **org, float **axis);
qboolean (*VID_Init) (rendererstate_t *info, unsigned char *palette);
void (*VID_DeInit) (void);
void (*VID_HandlePause) (qboolean pause);
void (*VID_LockBuffer) (void);
void (*VID_UnlockBuffer) (void);
void (*D_BeginDirectRect) (int x, int y, qbyte *pbitmap, int width, int height);
void (*D_EndDirectRect) (int x, int y, int width, int height);
void (*VID_ForceLockState) (int lk);
int (*VID_ForceUnlockedAndReturnState) (void);
void (*VID_SetPalette) (unsigned char *palette);
void (*VID_ShiftPalette) (unsigned char *palette);
char *(*VID_GetRGBInfo) (int prepad, int *truevidwidth, int *truevidheight);
void (*VID_SetWindowCaption) (char *msg);
void (*SCR_UpdateScreen) (void);
char *alignment;
} rendererinfo[] = {
{ //ALL builds need a 'none' renderer, as 0.
{
"none",
"dedicated",
"terminal",
"sw"
},
QR_NONE,
NULL, //Draw_PicFromWad;
NULL, //Draw_PicFromWad; //Not supported
NULL, //Draw_CachePic;
NULL, //Draw_SafeCachePic;
NULL, //Draw_Init;
NULL, //Draw_Init;
NULL, //Draw_Character;
NULL, //Draw_ColouredCharacter;
NULL, //Draw_String;
NULL, //Draw_Alt_String;
NULL, //Draw_Crosshair;
NULL, //Draw_DebugChar;
NULL, //Draw_Pic;
NULL, //Draw_SubPic;
NULL, //Draw_TransPic;
NULL, //Draw_TransPicTranslate;
NULL, //Draw_ConsoleBackground;
NULL, //Draw_EditorBackground;
NULL, //Draw_TileClear;
NULL, //Draw_Fill;
NULL, //Draw_FadeScreen;
NULL, //Draw_BeginDisc;
NULL, //Draw_EndDisc;
NULL, //I'm lazy.
NULL, //Draw_Image
NULL, //Draw_ImageColours
NULL, //R_Init;
NULL, //R_DeInit;
NULL, //R_ReInit;
NULL, //R_RenderView;
NULL, //R_InitSky;
NULL, //R_CheckSky;
NULL, //R_SetSky;
NULL, //R_NewMap;
NULL, //R_PreNewMap
NULL, //R_LightPoint;
NULL, //R_PushDlights;
NULL, //R_AddStain;
NULL, //R_LessenStains;
NULL, //Media_ShowFrameBGR_24_Flip;
NULL, //Media_ShowFrameRGBA_32;
NULL, //Media_ShowFrame8bit;
#ifdef SWQUAKE
SWMod_Init,
SWMod_ClearAll,
SWMod_ForName,
SWMod_FindName,
SWMod_Extradata,
SWMod_TouchModel,
SWMod_PointInLeaf,
SWMod_LeafPVS,
SWMod_NowLoadExternal,
SWMod_Think,
#elif defined(RGLQUAKE)
GLMod_Init,
GLMod_ClearAll,
GLMod_ForName,
GLMod_FindName,
GLMod_Extradata,
GLMod_TouchModel,
GLMod_PointInLeaf,
GLMod_LeafPVS,
GLMod_NowLoadExternal,
GLMod_Think,
#else
#error "No renderer in client build"
#endif
NULL, //Mod_GetTag
NULL, //VID_Init,
NULL, //VID_DeInit,
NULL, //VID_HandlePause,
NULL, //VID_LockBuffer,
NULL, //VID_UnlockBuffer,
NULL, //D_BeginDirectRect,
NULL, //D_EndDirectRect,
NULL, //VID_ForceLockState,
NULL, //VID_ForceUnlockedAndReturnState,
NULL, //VID_SetPalette,
NULL, //VID_ShiftPalette,
NULL, //VID_GetRGBInfo,
NULL, //set caption
NULL, //SCR_UpdateScreen;
""
}
#ifdef SWQUAKE
,
{
{
"sw",
"software",
},
QR_SOFTWARE,
SWDraw_PicFromWad,
SWDraw_PicFromWad, //Not supported
SWDraw_CachePic,
SWDraw_SafeCachePic,
SWDraw_Init,
SWDraw_Init,
SWDraw_Character,
SWDraw_ColouredCharacter,
SWDraw_String,
SWDraw_Alt_String,
SWDraw_Crosshair,
SWDraw_DebugChar,
SWDraw_Pic,
NULL,//SWDraw_ScaledPic,
SWDraw_SubPic,
SWDraw_TransPic,
SWDraw_TransPicTranslate,
SWDraw_ConsoleBackground,
SWDraw_EditorBackground,
SWDraw_TileClear,
SWDraw_Fill,
SWDraw_FadeScreen,
SWDraw_BeginDisc,
SWDraw_EndDisc,
SWDraw_Image,
SWDraw_ImageColours,
SWR_Init,
SWR_DeInit,
NULL,//SWR_ReInit,
SWR_RenderView,
SWR_InitSky,
SWR_CheckSky,
SWR_SetSky,
SWR_NewMap,
NULL,
SWR_LightPoint,
SWR_PushDlights,
SWR_AddStain,
SWR_LessenStains,
MediaSW_ShowFrameBGR_24_Flip,
MediaSW_ShowFrameRGBA_32,
MediaSW_ShowFrame8bit,
SWMod_Init,
SWMod_ClearAll,
SWMod_ForName,
SWMod_FindName,
SWMod_Extradata,
SWMod_TouchModel,
SWMod_PointInLeaf,
SWMod_LeafPVS,
SWMod_NowLoadExternal,
SWMod_Think,
NULL, //Mod_GetTag
SWVID_Init,
SWVID_Shutdown,
SWVID_HandlePause,
SWVID_LockBuffer,
SWVID_UnlockBuffer,
SWD_BeginDirectRect,
SWD_EndDirectRect,
SWVID_ForceLockState,
SWVID_ForceUnlockedAndReturnState,
SWVID_SetPalette,
SWVID_ShiftPalette,
SWVID_GetRGBInfo,
NULL,
SWSCR_UpdateScreen,
""
}
#else
,
{
{
NULL
}
}
#endif
#ifdef RGLQUAKE
,
{
{
"gl",
"opengl",
"hardware",
},
QR_SOFTWARE,
GLDraw_PicFromWad,
GLDraw_SafePicFromWad,
GLDraw_CachePic,
GLDraw_SafeCachePic,
GLDraw_Init,
GLDraw_ReInit,
GLDraw_Character,
GLDraw_ColouredCharacter,
GLDraw_String,
GLDraw_Alt_String,
GLDraw_Crosshair,
GLDraw_DebugChar,
GLDraw_Pic,
GLDraw_ScalePic,
GLDraw_SubPic,
GLDraw_TransPic,
GLDraw_TransPicTranslate,
GLDraw_ConsoleBackground,
GLDraw_EditorBackground,
GLDraw_TileClear,
GLDraw_Fill,
GLDraw_FadeScreen,
GLDraw_BeginDisc,
GLDraw_EndDisc,
GLDraw_Image,
GLDraw_ImageColours,
GLR_Init,
GLR_DeInit,
GLR_ReInit,
GLR_RenderView,
GLR_InitSky,
GLR_CheckSky,
GLR_SetSky,
GLR_NewMap,
GLR_PreNewMap,
GLR_LightPoint,
GLR_PushDlights,
GLR_AddStain,
GLR_LessenStains,
MediaGL_ShowFrameBGR_24_Flip,
MediaGL_ShowFrameRGBA_32,
MediaGL_ShowFrame8bit,
GLMod_Init,
GLMod_ClearAll,
GLMod_ForName,
GLMod_FindName,
GLMod_Extradata,
GLMod_TouchModel,
GLMod_PointInLeaf,
GLMod_LeafPVS,
GLMod_NowLoadExternal,
GLMod_Think,
GLMod_GetTag,
GLVID_Init,
GLVID_DeInit,
GLVID_HandlePause,
GLVID_LockBuffer,
GLVID_UnlockBuffer,
GLD_BeginDirectRect,
GLD_EndDirectRect,
GLVID_ForceLockState,
GLVID_ForceUnlockedAndReturnState,
GLVID_SetPalette,
GLVID_ShiftPalette,
GLVID_GetRGBInfo,
NULL, //setcaption
GLSCR_UpdateScreen,
""
}
#else
{
}
#endif
};
@ -784,259 +1185,84 @@ void M_Menu_Video_f (void)
}
void R_SetRenderer(r_qrenderer_t wanted)
void R_SetRenderer(int wanted)
{
switch(wanted)
{
case QR_NONE: //special case.
q_renderername = "Terminal";
q_renderername = rendererinfo[wanted].name[0];
Draw_PicFromWad = NULL;
Draw_SafePicFromWad = NULL; //Not supported
Draw_CachePic = NULL;
Draw_SafeCachePic = NULL;
Draw_Init = NULL;
Draw_ReInit = NULL;
Draw_Character = NULL;
Draw_ColouredCharacter = NULL;
Draw_String = NULL;
Draw_Alt_String = NULL;
Draw_Crosshair = NULL;
Draw_DebugChar = NULL;
Draw_Pic = NULL;
Draw_SubPic = NULL;
Draw_TransPic = NULL;
Draw_TransPicTranslate = NULL;
Draw_ConsoleBackground = NULL;
Draw_EditorBackground = NULL;
Draw_TileClear = NULL;
Draw_Fill = NULL;
Draw_FadeScreen = NULL;
Draw_BeginDisc = NULL;
Draw_EndDisc = NULL;
Draw_ScalePic = NULL; //I'm lazy.
Draw_PicFromWad = rendererinfo[wanted].Draw_PicFromWad;
Draw_SafePicFromWad = rendererinfo[wanted].Draw_SafePicFromWad; //Not supported
Draw_CachePic = rendererinfo[wanted].Draw_CachePic;
Draw_SafeCachePic = rendererinfo[wanted].Draw_SafeCachePic;
Draw_Init = rendererinfo[wanted].Draw_Init;
Draw_ReInit = rendererinfo[wanted].Draw_Init;
Draw_Character = rendererinfo[wanted].Draw_Character;
Draw_ColouredCharacter = rendererinfo[wanted].Draw_ColouredCharacter;
Draw_String = rendererinfo[wanted].Draw_String;
Draw_Alt_String = rendererinfo[wanted].Draw_Alt_String;
Draw_Crosshair = rendererinfo[wanted].Draw_Crosshair;
Draw_DebugChar = rendererinfo[wanted].Draw_DebugChar;
Draw_Pic = rendererinfo[wanted].Draw_Pic;
Draw_SubPic = rendererinfo[wanted].Draw_SubPic;
Draw_TransPic = rendererinfo[wanted].Draw_TransPic;
Draw_TransPicTranslate = rendererinfo[wanted].Draw_TransPicTranslate;
Draw_ConsoleBackground = rendererinfo[wanted].Draw_ConsoleBackground;
Draw_EditorBackground = rendererinfo[wanted].Draw_EditorBackground;
Draw_TileClear = rendererinfo[wanted].Draw_TileClear;
Draw_Fill = rendererinfo[wanted].Draw_Fill;
Draw_FadeScreen = rendererinfo[wanted].Draw_FadeScreen;
Draw_BeginDisc = rendererinfo[wanted].Draw_BeginDisc;
Draw_EndDisc = rendererinfo[wanted].Draw_EndDisc;
Draw_ScalePic = rendererinfo[wanted].Draw_ScalePic;
R_Init = NULL;
R_DeInit = NULL;
R_RenderView = NULL;
R_NewMap = NULL;
R_PreNewMap = NULL;
R_LightPoint = NULL;
R_PushDlights = NULL;
R_InitSky = NULL;
R_CheckSky = NULL;
R_SetSky = NULL;
Draw_Image = rendererinfo[wanted].Draw_Image;
Draw_ImageColours = rendererinfo[wanted].Draw_ImageColours;
R_AddStain = NULL;
R_LessenStains = NULL;
R_Init = rendererinfo[wanted].R_Init;
R_DeInit = rendererinfo[wanted].R_DeInit;
R_RenderView = rendererinfo[wanted].R_RenderView;
R_NewMap = rendererinfo[wanted].R_NewMap;
R_PreNewMap = rendererinfo[wanted].R_PreNewMap;
R_LightPoint = rendererinfo[wanted].R_LightPoint;
R_PushDlights = rendererinfo[wanted].R_PushDlights;
R_InitSky = rendererinfo[wanted].R_InitSky;
R_CheckSky = rendererinfo[wanted].R_CheckSky;
R_SetSky = rendererinfo[wanted].R_SetSky;
VID_Init = NULL;
VID_DeInit = NULL;
VID_HandlePause = NULL;
VID_LockBuffer = NULL;
VID_UnlockBuffer = NULL;
D_BeginDirectRect = NULL;
D_EndDirectRect = NULL;
VID_ForceLockState = NULL;
VID_ForceUnlockedAndReturnState = NULL;
VID_SetPalette = NULL;
VID_ShiftPalette = NULL;
VID_GetRGBInfo = NULL;
R_AddStain = rendererinfo[wanted].R_AddStain;
R_LessenStains = rendererinfo[wanted].R_LessenStains;
Media_ShowFrame8bit = NULL;
Media_ShowFrameRGBA_32 = NULL;
Media_ShowFrameBGR_24_Flip = NULL;
VID_Init = rendererinfo[wanted].VID_Init;
VID_DeInit = rendererinfo[wanted].VID_DeInit;
VID_HandlePause = rendererinfo[wanted].VID_HandlePause;
VID_LockBuffer = rendererinfo[wanted].VID_LockBuffer;
VID_UnlockBuffer = rendererinfo[wanted].VID_UnlockBuffer;
D_BeginDirectRect = rendererinfo[wanted].D_BeginDirectRect;
D_EndDirectRect = rendererinfo[wanted].D_EndDirectRect;
VID_ForceLockState = rendererinfo[wanted].VID_ForceLockState;
VID_ForceUnlockedAndReturnState = rendererinfo[wanted].VID_ForceUnlockedAndReturnState;
VID_SetPalette = rendererinfo[wanted].VID_SetPalette;
VID_ShiftPalette = rendererinfo[wanted].VID_ShiftPalette;
VID_GetRGBInfo = rendererinfo[wanted].VID_GetRGBInfo;
#ifdef SWQUAKE //Any one of them that works.
Mod_Init = SWMod_Init;
Mod_Think = SWMod_Think;
Mod_ClearAll = SWMod_ClearAll;
Mod_ForName = SWMod_ForName;
Mod_FindName = SWMod_FindName;
Mod_Extradata = SWMod_Extradata;
Mod_TouchModel = SWMod_TouchModel;
Media_ShowFrame8bit = rendererinfo[wanted].Media_ShowFrame8bit;
Media_ShowFrameRGBA_32 = rendererinfo[wanted].Media_ShowFrameRGBA_32;
Media_ShowFrameBGR_24_Flip = rendererinfo[wanted].Media_ShowFrameBGR_24_Flip;
Mod_PointInLeaf = SWMod_PointInLeaf;
Mod_Q1LeafPVS = SWMod_LeafPVS;
Mod_NowLoadExternal = SWMod_NowLoadExternal;
#elif defined(RGLQUAKE)
Mod_Init = GLMod_Init;
Mod_Think = GLMod_Think;
Mod_ClearAll = GLMod_ClearAll;
Mod_ForName = GLMod_ForName;
Mod_FindName = GLMod_FindName;
Mod_Extradata = GLMod_Extradata;
Mod_TouchModel = GLMod_TouchModel;
Mod_Init = rendererinfo[wanted].Mod_Init;
Mod_Think = rendererinfo[wanted].Mod_Think;
Mod_ClearAll = rendererinfo[wanted].Mod_ClearAll;
Mod_ForName = rendererinfo[wanted].Mod_ForName;
Mod_FindName = rendererinfo[wanted].Mod_FindName;
Mod_Extradata = rendererinfo[wanted].Mod_Extradata;
Mod_TouchModel = rendererinfo[wanted].Mod_TouchModel;
Mod_PointInLeaf = GLMod_PointInLeaf;
Mod_Q1LeafPVS = GLMod_LeafPVS;
Mod_NowLoadExternal = GLMod_NowLoadExternal;
#else
#error "No renderer in client build"
#endif
SCR_UpdateScreen = NULL;
break;
#ifdef SWQUAKE
case QR_SOFTWARE:
// wanted = QR_SOFTWARE;
q_renderername = "Software";
Draw_PicFromWad = SWDraw_PicFromWad;
Draw_SafePicFromWad = SWDraw_PicFromWad; //Not supported
Draw_CachePic = SWDraw_CachePic;
Draw_SafeCachePic = SWDraw_SafeCachePic;
Draw_Init = SWDraw_Init;
Draw_ReInit = SWDraw_Init;
Draw_Character = SWDraw_Character;
Draw_ColouredCharacter = SWDraw_ColouredCharacter;
Draw_String = SWDraw_String;
Draw_Alt_String = SWDraw_Alt_String;
Draw_Crosshair = SWDraw_Crosshair;
Draw_DebugChar = SWDraw_DebugChar;
Draw_Pic = SWDraw_Pic;
Draw_SubPic = SWDraw_SubPic;
Draw_TransPic = SWDraw_TransPic;
Draw_TransPicTranslate = SWDraw_TransPicTranslate;
Draw_ConsoleBackground = SWDraw_ConsoleBackground;
Draw_EditorBackground = SWDraw_EditorBackground;
Draw_TileClear = SWDraw_TileClear;
Draw_Fill = SWDraw_Fill;
Draw_FadeScreen = SWDraw_FadeScreen;
Draw_BeginDisc = SWDraw_BeginDisc;
Draw_EndDisc = SWDraw_EndDisc;
Draw_ScalePic = NULL; //I'm lazy.
R_Init = SWR_Init;
R_DeInit = SWR_DeInit;
R_RenderView = SWR_RenderView;
R_NewMap = SWR_NewMap;
R_PreNewMap = NULL;
R_LightPoint = SWR_LightPoint;
R_PushDlights = SWR_PushDlights;
R_InitSky = SWR_InitSky;
R_CheckSky = SWR_CheckSky;
R_SetSky = SWR_SetSky;
R_AddStain = SWR_AddStain;
R_LessenStains = SWR_LessenStains;
VID_Init = SWVID_Init;
VID_DeInit = SWVID_Shutdown;
VID_HandlePause = SWVID_HandlePause;
VID_LockBuffer = SWVID_LockBuffer;
VID_UnlockBuffer = SWVID_UnlockBuffer;
D_BeginDirectRect = SWD_BeginDirectRect;
D_EndDirectRect = SWD_EndDirectRect;
VID_ForceLockState = SWVID_ForceLockState;
VID_ForceUnlockedAndReturnState = SWVID_ForceUnlockedAndReturnState;
VID_SetPalette = SWVID_SetPalette;
VID_ShiftPalette = SWVID_ShiftPalette;
VID_GetRGBInfo = SWVID_GetRGBInfo;
Media_ShowFrame8bit = MediaSW_ShowFrame8bit;
Media_ShowFrameRGBA_32 = MediaSW_ShowFrameRGBA_32;
Media_ShowFrameBGR_24_Flip = MediaSW_ShowFrameBGR_24_Flip;
Mod_Init = SWMod_Init;
Mod_Think = SWMod_Think;
Mod_ClearAll = SWMod_ClearAll;
Mod_ForName = SWMod_ForName;
Mod_FindName = SWMod_FindName;
Mod_Extradata = SWMod_Extradata;
Mod_TouchModel = SWMod_TouchModel;
Mod_PointInLeaf = SWMod_PointInLeaf;
Mod_Q1LeafPVS = SWMod_LeafPVS;
Mod_NowLoadExternal = SWMod_NowLoadExternal;
Mod_PointInLeaf = rendererinfo[wanted].Mod_PointInLeaf;
Mod_Q1LeafPVS = rendererinfo[wanted].Mod_Q1LeafPVS;
Mod_NowLoadExternal = rendererinfo[wanted].Mod_NowLoadExternal;
SCR_UpdateScreen = SWSCR_UpdateScreen;
break;
#endif
#ifdef RGLQUAKE
case QR_OPENGL:
// wanted = QR_OPENGL;
q_renderername = "OpenGL";
Draw_PicFromWad = GLDraw_PicFromWad;
Draw_SafePicFromWad = GLDraw_SafePicFromWad;
Draw_CachePic = GLDraw_CachePic;
Draw_SafeCachePic = GLDraw_SafeCachePic;
Draw_Init = GLDraw_Init;
Draw_ReInit = GLDraw_ReInit;
Draw_Character = GLDraw_Character;
Draw_ColouredCharacter = GLDraw_ColouredCharacter;
Draw_String = GLDraw_String;
Draw_Alt_String = GLDraw_Alt_String;
Draw_Crosshair = GLDraw_Crosshair;
Draw_DebugChar = GLDraw_DebugChar;
Draw_Pic = GLDraw_Pic;
Draw_SubPic = GLDraw_SubPic;
Draw_TransPic = GLDraw_TransPic;
Draw_TransPicTranslate = GLDraw_TransPicTranslate;
Draw_ConsoleBackground = GLDraw_ConsoleBackground;
Draw_EditorBackground = GLDraw_EditorBackground;
Draw_TileClear = GLDraw_TileClear;
Draw_Fill = GLDraw_Fill;
Draw_FadeScreen = GLDraw_FadeScreen;
Draw_BeginDisc = GLDraw_BeginDisc;
Draw_EndDisc = GLDraw_EndDisc;
Draw_ScalePic = GLDraw_ScalePic;
R_Init = GLR_Init;
R_DeInit = GLR_DeInit;
R_RenderView = GLR_RenderView;
R_NewMap = GLR_NewMap;
R_PreNewMap = GLR_PreNewMap;
R_LightPoint = GLR_LightPoint;
R_PushDlights = GLR_PushDlights;
R_InitSky = GLR_InitSky;
R_CheckSky = GLR_CheckSky;
R_SetSky = GLR_SetSky;
R_AddStain = GLR_AddStain;
R_LessenStains = GLR_LessenStains;
VID_Init = GLVID_Init;
VID_DeInit = GLVID_DeInit;
VID_HandlePause = GLVID_HandlePause;
VID_LockBuffer = GLVID_LockBuffer;
VID_UnlockBuffer = GLVID_UnlockBuffer;
D_BeginDirectRect = GLD_BeginDirectRect;
D_EndDirectRect = GLD_EndDirectRect;
VID_ForceLockState = GLVID_ForceLockState;
VID_ForceUnlockedAndReturnState = GLVID_ForceUnlockedAndReturnState;
VID_SetPalette = GLVID_SetPalette;
VID_ShiftPalette = GLVID_ShiftPalette;
VID_GetRGBInfo = GLVID_GetRGBInfo;
Media_ShowFrame8bit = MediaGL_ShowFrame8bit;
Media_ShowFrameRGBA_32 = MediaGL_ShowFrameRGBA_32;
Media_ShowFrameBGR_24_Flip = MediaGL_ShowFrameBGR_24_Flip;
Mod_Init = GLMod_Init;
Mod_Think = GLMod_Think;
Mod_ClearAll = GLMod_ClearAll;
Mod_ForName = GLMod_ForName;
Mod_FindName = GLMod_FindName;
Mod_Extradata = GLMod_Extradata;
Mod_TouchModel = GLMod_TouchModel;
Mod_PointInLeaf = GLMod_PointInLeaf;
Mod_Q1LeafPVS = GLMod_LeafPVS;
Mod_NowLoadExternal = GLMod_NowLoadExternal;
SCR_UpdateScreen = GLSCR_UpdateScreen;
break;
#endif
default:
Sys_Error("Bad render chosen\n");
}
SCR_UpdateScreen = rendererinfo[wanted].SCR_UpdateScreen;
qrenderer = wanted;
}
@ -1387,6 +1613,9 @@ void R_RestartRenderer_f (void)
{
rendererstate_t oldr;
rendererstate_t newr;
MP_Shutdown();
memset(&newr, 0, sizeof(newr));
TRACE(("dbg: R_RestartRenderer_f\n"));
@ -1485,6 +1714,8 @@ TRACE(("dbg: R_RestartRenderer_f\n"));
}
TRACE(("dbg: R_RestartRenderer_f success\n"));
MP_Init();
}
void R_SetRenderer_f (void)