X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=vid_shared.c;h=c60e6efc7c4900b3088b236e98e5745c7b593f3d;hb=b18cecd7b0c37e696571dcb3abb22a79ad03dae7;hp=719d6299c4b3c2d2ea696cab14cd6898e6e30f7a;hpb=a0465ad2ee16719587b0b7a80d4c1c2f7df1ac0e;p=xonotic%2Fdarkplaces.git diff --git a/vid_shared.c b/vid_shared.c index 719d6299..c60e6efc 100644 --- a/vid_shared.c +++ b/vid_shared.c @@ -1,6 +1,8 @@ #include "quakedef.h" +#ifdef CONFIG_CD #include "cdaudio.h" +#endif #include "image.h" #ifdef SUPPORTD3D @@ -187,6 +189,7 @@ cvar_t vid_touchscreen_showkeyboard = {0, "vid_touchscreen_showkeyboard", "0", " cvar_t vid_touchscreen_supportshowkeyboard = {CVAR_READONLY, "vid_touchscreen_supportshowkeyboard", "0", "indicates if the platform supports a virtual keyboard"}; cvar_t vid_stick_mouse = {CVAR_SAVE, "vid_stick_mouse", "0", "have the mouse stuck in the center of the screen" }; cvar_t vid_resizable = {CVAR_SAVE, "vid_resizable", "0", "0: window not resizable, 1: resizable, 2: window can be resized but the framebuffer isn't adjusted" }; +cvar_t vid_desktopfullscreen = {CVAR_SAVE, "vid_desktopfullscreen", "0", "force desktop resolution for fullscreen; also use some OS dependent tricks for better fullscreen integration"}; cvar_t v_gamma = {CVAR_SAVE, "v_gamma", "1", "inverse gamma correction value, a brightness effect that does not affect white or black, and tends to make the image grey and dull"}; cvar_t v_contrast = {CVAR_SAVE, "v_contrast", "1", "brightness of white (values above 1 give a brighter image with increased color saturation, unlike v_gamma)"}; @@ -1062,6 +1065,7 @@ void VID_CheckExtensions(void) vid.support.arb_draw_buffers = GL_CheckExtension("GL_ARB_draw_buffers", drawbuffersfuncs, "-nodrawbuffers", false); vid.support.arb_multitexture = GL_CheckExtension("GL_ARB_multitexture", multitexturefuncs, "-nomtex", false); vid.support.arb_occlusion_query = GL_CheckExtension("GL_ARB_occlusion_query", occlusionqueryfuncs, "-noocclusionquery", false); + vid.support.arb_query_buffer_object = GL_CheckExtension("GL_ARB_query_buffer_object", NULL, "-noquerybuffer", true); vid.support.arb_shadow = GL_CheckExtension("GL_ARB_shadow", NULL, "-noshadow", false); vid.support.arb_texture_compression = GL_CheckExtension("GL_ARB_texture_compression", texturecompressionfuncs, "-notexturecompression", false); vid.support.arb_texture_cube_map = GL_CheckExtension("GL_ARB_texture_cube_map", NULL, "-nocubemap", false); @@ -1091,6 +1095,9 @@ void VID_CheckExtensions(void) vid.support.ext_texture_edge_clamp = GL_CheckExtension("GL_EXT_texture_edge_clamp", NULL, "-noedgeclamp", false) || GL_CheckExtension("GL_SGIS_texture_edge_clamp", NULL, "-noedgeclamp", false); vid.support.ext_texture_filter_anisotropic = GL_CheckExtension("GL_EXT_texture_filter_anisotropic", NULL, "-noanisotropy", false); vid.support.ext_texture_srgb = GL_CheckExtension("GL_EXT_texture_sRGB", NULL, "-nosrgb", false); + vid.support.arb_texture_float = GL_CheckExtension("GL_ARB_texture_float", NULL, "-notexturefloat", false); + vid.support.arb_half_float_pixel = GL_CheckExtension("GL_ARB_half_float_pixel", NULL, "-nohalffloatpixel", false); + vid.support.arb_half_float_vertex = GL_CheckExtension("GL_ARB_half_float_vertex", NULL, "-nohalffloatvertex", false); vid.support.arb_multisample = GL_CheckExtension("GL_ARB_multisample", multisamplefuncs, "-nomultisample", false); vid.allowalphatocoverage = false; @@ -1107,6 +1114,7 @@ void VID_CheckExtensions(void) // COMMANDLINEOPTION: GL: -nofbo disables GL_EXT_framebuffer_object (which accelerates rendering), only used if GL_ARB_fragment_shader is also available // COMMANDLINEOPTION: GL: -nomtex disables GL_ARB_multitexture (required for faster map rendering) // COMMANDLINEOPTION: GL: -noocclusionquery disables GL_ARB_occlusion_query (which allows coronas to fade according to visibility, and potentially used for rendering optimizations) +// COMMANDLINEOPTION: GL: -noquerybuffer disables GL_ARB_query_buffer_object (which allows corona fading without synchronous rendering) // COMMANDLINEOPTION: GL: -nos3tc disables GL_EXT_texture_compression_s3tc (which allows use of .dds texture caching) // COMMANDLINEOPTION: GL: -noseparatestencil disables use of OpenGL2.0 glStencilOpSeparate and GL_ATI_separate_stencil extensions (which accelerate shadow rendering) // COMMANDLINEOPTION: GL: -noshadow disables use of GL_ARB_shadow (required for hardware shadowmap filtering) @@ -1222,14 +1230,14 @@ void VID_CheckExtensions(void) } #endif -float VID_JoyState_GetAxis(const vid_joystate_t *joystate, int axis, float sensitivity, float deadzone) +float VID_JoyState_GetAxis(const vid_joystate_t *joystate, int axis, float fsensitivity, float deadzone) { float value; value = (axis >= 0 && axis < MAXJOYAXIS) ? joystate->axis[axis] : 0.0f; value = value > deadzone ? (value - deadzone) : (value < -deadzone ? (value + deadzone) : 0.0f); value *= deadzone > 0 ? (1.0f / (1.0f - deadzone)) : 1.0f; value = bound(-1, value, 1); - return value * sensitivity; + return value * fsensitivity; } qboolean VID_JoyBlockEmulatedKeys(int keycode) @@ -1768,6 +1776,7 @@ void VID_Shared_Init(void) Cvar_RegisterVariable(&vid_touchscreen_supportshowkeyboard); Cvar_RegisterVariable(&vid_stick_mouse); Cvar_RegisterVariable(&vid_resizable); + Cvar_RegisterVariable(&vid_desktopfullscreen); Cvar_RegisterVariable(&vid_minwidth); Cvar_RegisterVariable(&vid_minheight); Cvar_RegisterVariable(&vid_gl13); @@ -2118,6 +2127,7 @@ void VID_Soft_SharedSetup(void) vid.support.arb_depth_texture = true; vid.support.arb_draw_buffers = true; vid.support.arb_occlusion_query = true; + vid.support.arb_query_buffer_object = false; vid.support.arb_shadow = true; //vid.support.arb_texture_compression = true; vid.support.arb_texture_cube_map = true; @@ -2158,7 +2168,11 @@ void VID_Soft_SharedSetup(void) Cvar_SetQuick(&gl_info_driver, gl_driver); // LordHavoc: report supported extensions +#ifdef CONFIG_MENU Con_DPrintf("\nQuakeC extensions for server and client: %s\nQuakeC extensions for menu: %s\n", vm_sv_extensions, vm_m_extensions ); +#else + Con_DPrintf("\nQuakeC extensions for server and client: %s\n", vm_sv_extensions ); +#endif // clear to black (loading plaque will be seen over this) GL_Clear(GL_COLOR_BUFFER_BIT, NULL, 1.0f, 128);