X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=vid_3dfxsvga.c;h=a07b8f317888ae6be9ba6b9577a14cd5e7d85d63;hb=32d73f2e1ef4c7f22b283c21c99eaf6abf223304;hp=6583d37d5e49e616eeca60a3941658e6d00e57d4;hpb=7d0ec7ce187f7333a7ada2884108757a4fec6449;p=xonotic%2Fdarkplaces.git diff --git a/vid_3dfxsvga.c b/vid_3dfxsvga.c index 6583d37d..a07b8f31 100644 --- a/vid_3dfxsvga.c +++ b/vid_3dfxsvga.c @@ -56,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) { } @@ -79,6 +70,8 @@ void VID_Shutdown(void) return; fxMesaDestroyContext(fc); + + GL_CloseLibrary(); } void signal_handler(int sig) @@ -86,7 +79,6 @@ void signal_handler(int sig) printf("Received signal %d, exiting...\n", sig); Host_Shutdown(); abort(); - //Sys_Quit(); exit(0); } @@ -97,82 +89,11 @@ 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(void) -{ - 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) @@ -198,7 +119,7 @@ void VID_SetupDithering(void) dither_select(GR_DITHER_4x4); Con_Printf ("4x4.\n"); } else { - glDisable(GL_DITHER); + qglDisable(GL_DITHER); Con_Printf ("disabled.\n"); } } @@ -208,29 +129,23 @@ void VID_SetupDithering(void) /* ================= -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]={ @@ -315,6 +230,8 @@ void VID_Init(void) GLint attribs[32]; int width = 640, height = 480; + GL_OpenLibrary(); + // set vid parameters attribs[0] = FXMESA_DOUBLEBUFFER; attribs[1] = FXMESA_ALPHA_SIZE; @@ -360,8 +277,6 @@ void VID_Init(void) vid.conheight = height; if (vid.conwidth > width) vid.conwidth = width; - vid.width = vid.conwidth; - vid.height = vid.conheight; InitSig(); // trap evil signals @@ -369,25 +284,17 @@ void VID_Init(void) 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_SetCaption (char *text) @@ -397,3 +304,4 @@ void VID_SetCaption (char *text) void VID_HandlePause (qboolean pause) { } +