X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=vid_3dfxsvga.c;h=a07b8f317888ae6be9ba6b9577a14cd5e7d85d63;hp=601387c1625991613ae96b094b9453ed708afcbf;hb=b2f7fe6f3ec6934b89161592c5df77b3932f2698;hpb=e4b3858e7aca0ead91be1d8f675db084d025abad diff --git a/vid_3dfxsvga.c b/vid_3dfxsvga.c index 601387c1..a07b8f31 100644 --- a/vid_3dfxsvga.c +++ b/vid_3dfxsvga.c @@ -46,8 +46,6 @@ #include -cvar_t vid_mode = {"vid_mode","0",false}; - viddef_t vid; // global video state static void *dlhand = NULL; @@ -58,16 +56,7 @@ static int scr_width, scr_height; int VID_options_items = 0; /*-----------------------------------------------------------------------*/ - -float gldepthmin, gldepthmax; - -const char *gl_vendor; -const char *gl_renderer; -const char *gl_version; -const char *gl_extensions; - -/*-----------------------------------------------------------------------*/ -void D_BeginDirectRect (int x, int y, byte *pbitmap, int width, int height) +void D_BeginDirectRect (int x, int y, qbyte *pbitmap, int width, int height) { } @@ -81,6 +70,8 @@ void VID_Shutdown(void) return; fxMesaDestroyContext(fc); + + GL_CloseLibrary(); } void signal_handler(int sig) @@ -88,7 +79,6 @@ void signal_handler(int sig) printf("Received signal %d, exiting...\n", sig); Host_Shutdown(); abort(); - //Sys_Quit(); exit(0); } @@ -99,85 +89,14 @@ void InitSig(void) signal(SIGQUIT, signal_handler); signal(SIGILL, signal_handler); signal(SIGTRAP, signal_handler); -// signal(SIGIOT, signal_handler); signal(SIGBUS, signal_handler); -// signal(SIGFPE, signal_handler); signal(SIGSEGV, signal_handler); signal(SIGTERM, signal_handler); } -/* - VID_CheckMultitexture - - Check for ARB, SGIS, or EXT multitexture support -*/ -void VID_CheckMultitexture() -{ - Con_Printf ("Checking for multitexture... "); - if (COM_CheckParm ("-nomtex")) - { - Con_Printf ("disabled\n"); - return; - } - dlhand = dlopen (NULL, RTLD_LAZY); - if (dlhand == NULL) - { - Con_Printf ("unable to check\n"); - return; - } - if (strstr(gl_extensions, "GL_ARB_multitexture ")) - { - Con_Printf ("GL_ARB_multitexture\n"); - qglMTexCoord2f = (void *)dlsym(dlhand, "glMultiTexCoord2fARB"); - qglSelectTexture = (void *)dlsym(dlhand, "glActiveTextureARB"); - gl_mtex_enum = GL_TEXTURE0_ARB; - gl_mtexable = true; - } - else if (strstr(gl_extensions, "GL_SGIS_multitexture ")) - { - Con_Printf ("GL_SGIS_multitexture\n"); - qglMTexCoord2f = (void *)dlsym(dlhand, "glMTexCoord2fSGIS"); - qglSelectTexture = (void *)dlsym(dlhand, "glSelectTextureSGIS"); - gl_mtex_enum = TEXTURE0_SGIS; - gl_mtexable = true; - } - else - Con_Printf ("none found\n"); - dlclose(dlhand); - dlhand = NULL; -} - -void VID_CheckCVA(void) -{ - qglLockArraysEXT = NULL; - qglUnlockArraysEXT = NULL; - gl_supportslockarrays = false; - if (COM_CheckParm("-nocva")) - { - Con_Printf("...compiled vertex arrays disabled\n"); - return; - } - dlhand = dlopen (NULL, RTLD_LAZY); - if (dlhand == NULL) - { - Con_Printf("Unable to open symbol list for main program.\n"); - return; - } - if (strstr(gl_extensions, "GL_EXT_compiled_vertex_array")) - { - Con_Printf("...using compiled vertex arrays\n"); - qglLockArraysEXT = (void *) dlsym(dlhand, "glLockArraysEXT"); - qglUnlockArraysEXT = (void *) dlsym(dlhand, "glUnlockArraysEXT"); - gl_supportslockarrays = true; - } - dlclose(dlhand); - dlhand = NULL; -} - - typedef void (GLAPIENTRY *gl3DfxSetDitherModeEXT_FUNC) (GrDitherMode_t mode); -void VID_SetupDithering() +void VID_SetupDithering(void) { Con_Printf ("Dithering: "); @@ -200,7 +119,7 @@ void VID_SetupDithering() dither_select(GR_DITHER_4x4); Con_Printf ("4x4.\n"); } else { - glDisable(GL_DITHER); + qglDisable(GL_DITHER); Con_Printf ("disabled.\n"); } } @@ -210,29 +129,23 @@ void VID_SetupDithering() /* ================= -GL_BeginRendering - +VID_GetWindowSize ================= */ -void GL_BeginRendering (int *x, int *y, int *width, int *height) +void VID_GetWindowSize (int *x, int *y, int *width, int *height) { *x = *y = 0; *width = scr_width; *height = scr_height; - -// if (!wglMakeCurrent( maindc, baseRC )) -// Sys_Error ("wglMakeCurrent failed"); - -// glViewport (*x, *y, *width, *height); } - -void GL_EndRendering (void) +void VID_Finish (void) { - if (!r_render.value) - return; - glFlush(); - fxMesaSwapBuffers(); + if (r_render.integer) + { + qglFinish(); + fxMesaSwapBuffers(); + } } static int resolutions[][3]={ @@ -306,12 +219,19 @@ findres(int *width, int *height) return GR_RESOLUTION_640x480; } -void VID_Init() +int VID_SetGamma(float prescale, float gamma, float scale, float base) +{ + return FALSE; +} + +void VID_Init(void) { int i; GLint attribs[32]; int width = 640, height = 480; + GL_OpenLibrary(); + // set vid parameters attribs[0] = FXMESA_DOUBLEBUFFER; attribs[1] = FXMESA_ALPHA_SIZE; @@ -357,10 +277,6 @@ void VID_Init() vid.conheight = height; if (vid.conwidth > width) vid.conwidth = width; - vid.width = vid.conwidth; - vid.height = vid.conheight; - - vid.aspect = ((float)vid.height / (float)vid.width) * (320.0 / 240.0); InitSig(); // trap evil signals @@ -368,28 +284,17 @@ void VID_Init() VID_SetupDithering(); // 3DFX specific - Con_SafePrintf ("Video mode %dx%d initialized.\n", width, height); + vid_hidden = false; - vid.recalc_refdef = 1; // force a surface cache flush + Con_SafePrintf ("Video mode %dx%d initialized.\n", width, height); } void VID_ExtraOptionDraw(unsigned int options_draw_cursor) { -/* Port specific Options menu entrys */ } void VID_ExtraOptionCmd(int option_cursor) { -/* - switch(option_cursor) - { - case 12: // Always start with 12 - break; - } -*/ -} -void VID_InitCvars () -{ } void VID_SetCaption (char *text) @@ -399,3 +304,4 @@ void VID_SetCaption (char *text) void VID_HandlePause (qboolean pause) { } +