03 Mar 2015

This commit is contained in:
g-cont 2015-03-03 00:00:00 +03:00 committed by Alibek Omarov
parent dc1d56ed74
commit 171038bec5
2 changed files with 38 additions and 5 deletions

View File

@ -558,6 +558,9 @@ typedef struct
GLfloat max_texture_anisotropy;
GLfloat max_texture_lodbias;
GLint max_vertex_uniforms;
GLint max_vertex_attribs;
int color_bits;
int alpha_bits;
int depth_bits;

View File

@ -19,9 +19,10 @@ GNU General Public License for more details.
#include "mod_local.h"
#include "input.h"
#define VID_DEFAULTMODE "1"
#define VID_AUTOMODE "-1"
#define VID_DEFAULTMODE 2.0f
#define DISP_CHANGE_BADDUALVIEW -6 // MSVC 6.0 doesn't
#define num_vidmodes ((int)(sizeof(vidmode) / sizeof(vidmode[0])) - 1)
#define num_vidmodes ( sizeof( vidmode ) / sizeof( vidmode[0] ))
#define WINDOW_STYLE (WS_OVERLAPPED|WS_BORDER|WS_SYSMENU|WS_CAPTION|WS_VISIBLE)
#define WINDOW_EX_STYLE (0)
#define WINDOW_NAME "Xash Window" // Half-Life
@ -1362,9 +1363,30 @@ qboolean VID_SetMode( void )
qboolean fullscreen;
rserr_t err;
fullscreen = vid_fullscreen->integer;
gl_swapInterval->modified = true;
if( vid_mode->integer == -1 ) // trying to get resolution automatically by default
{
HDC hDCScreen = GetDC( NULL );
int iScreenWidth = GetDeviceCaps( hDCScreen, HORZRES );
int iScreenHeight = GetDeviceCaps( hDCScreen, VERTRES );
ReleaseDC( NULL, hDCScreen );
if( R_DescribeVIDMode( iScreenWidth, iScreenHeight ))
{
MsgDev( D_NOTE, "found specified vid mode %i [%ix%i]\n", vid_mode->integer, iScreenWidth, iScreenHeight );
Cvar_SetFloat( "fullscreen", 1 );
}
else
{
MsgDev( D_NOTE, "failed to set specified vid mode [%ix%i]\n", iScreenWidth, iScreenHeight );
Cvar_SetFloat( "vid_mode", VID_DEFAULTMODE );
}
}
fullscreen = vid_fullscreen->integer;
if(( err = R_ChangeDisplaySettings( vid_mode->integer, fullscreen )) == rserr_ok )
{
glConfig.prev_mode = vid_mode->integer;
@ -1541,7 +1563,10 @@ void R_RenderInfo_f( void )
Msg( "GL_VENDOR: %s\n", glConfig.vendor_string );
Msg( "GL_RENDERER: %s\n", glConfig.renderer_string );
Msg( "GL_VERSION: %s\n", glConfig.version_string );
Msg( "GL_EXTENSIONS: %s\n", glConfig.extensions_string );
// don't spam about extensions
if( host.developer >= 4 )
Msg( "GL_EXTENSIONS: %s\n", glConfig.extensions_string );
Msg( "GL_MAX_TEXTURE_SIZE: %i\n", glConfig.max_2d_texture_size );
@ -1557,6 +1582,8 @@ void R_RenderInfo_f( void )
{
Msg( "GL_MAX_TEXTURE_COORDS_ARB: %i\n", glConfig.max_texture_coords );
Msg( "GL_MAX_TEXTURE_IMAGE_UNITS_ARB: %i\n", glConfig.max_teximage_units );
Msg( "GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB: %i\n", glConfig.max_vertex_uniforms );
Msg( "GL_MAX_VERTEX_ATTRIBS_ARB: %i\n", glConfig.max_vertex_attribs );
}
Msg( "\n" );
@ -1642,7 +1669,7 @@ void GL_InitCommands( void )
vid_gamma = Cvar_Get( "gamma", "1.0", CVAR_ARCHIVE, "gamma amount" );
vid_texgamma = Cvar_Get( "texgamma", "2.2", CVAR_GLCONFIG, "texgamma amount (default Half-Life artwork gamma)" );
vid_mode = Cvar_Get( "vid_mode", VID_DEFAULTMODE, CVAR_RENDERINFO, "display resolution mode" );
vid_mode = Cvar_Get( "vid_mode", VID_AUTOMODE, CVAR_RENDERINFO, "display resolution mode" );
vid_fullscreen = Cvar_Get( "fullscreen", "0", CVAR_RENDERINFO, "set in 1 to enable fullscreen mode" );
vid_displayfrequency = Cvar_Get ( "vid_displayfrequency", "0", CVAR_RENDERINFO, "fullscreen refresh rate" );
@ -1810,6 +1837,9 @@ void GL_InitExtensions( void )
Cvar_Get( "gl_max_texture_size", "0", CVAR_INIT, "opengl texture max dims" );
Cvar_Set( "gl_max_texture_size", va( "%i", glConfig.max_2d_texture_size ));
pglGetIntegerv( GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB, &glConfig.max_vertex_uniforms );
pglGetIntegerv( GL_MAX_VERTEX_ATTRIBS_ARB, &glConfig.max_vertex_attribs );
// MCD has buffering issues
if(Q_strstr( glConfig.renderer_string, "gdi" ))
Cvar_SetFloat( "gl_finish", 1 );