本文整理汇总了C++中Cvar_Get函数的典型用法代码示例。如果您正苦于以下问题:C++ Cvar_Get函数的具体用法?C++ Cvar_Get怎么用?C++ Cvar_Get使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Cvar_Get函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Qcommon_Init
/*
=================
Qcommon_Init
=================
*/
void Qcommon_Init (int argc, char **argv)
{
static const char *apVersion = APPLICATION " v" VERSION " " CPUSTRING " " __DATE__ " " BUILDSTRING;
if (setjmp (abortframe) )
Sys_Error ("Error during initialization");
z_chain.next = z_chain.prev = &z_chain;
// prepare enough of the subsystems to handle
// cvar and command buffer management
COM_InitArgv (argc, argv);
Swap_Init ();
Cbuf_Init ();
Cmd_Init ();
Cvar_Init ();
Key_Init ();
// we need to add the early commands twice, because
// a basedir or cddir needs to be set before execing
// config files, but we want other parms to override
// the settings of the config files
Cbuf_AddEarlyCommands (false);
Cbuf_Execute();
FS_InitFilesystem ();
Cbuf_AddText ("exec default.cfg\n");
Cbuf_Execute();
Cbuf_AddText ("exec aprconfig.cfg\n");
Cbuf_Execute();
FS_ExecConfig("autoexec.cfg");
Cbuf_Execute();
Cbuf_AddEarlyCommands (true);
Cbuf_Execute();
Cmd_AddCommand ("echo", Cmd_Echo_f);
// init commands and vars
Cmd_AddCommand ("z_stats", Z_Stats_f);
Cmd_AddCommand( "z_check", Z_Check );
host_speeds = Cvar_Get ("host_speeds", "0", 0);
developer = Cvar_Get ("developer", "0", 0);
timescale = Cvar_Get ("timescale", "1", CVAR_CHEAT);
fixedtime = Cvar_Get ("fixedtime", "0", CVAR_CHEAT);
logfile_active = Cvar_Get ("logfile", "0", 0);
showtrace = Cvar_Get ("showtrace", "0", 0);
#ifdef DEDICATED_ONLY
dedicated = Cvar_Get ("dedicated", "1", CVAR_ROM);
#else
dedicated = Cvar_Get ("dedicated", "0", CVAR_NOSET);
#endif
timescale->OnChange = OnChange_Timescale;
OnChange_Timescale(timescale, timescale->resetString);
Cvar_Get ("version", apVersion, CVAR_SERVERINFO|CVAR_ROM);
Cmd_AddMacro( "date", Com_Date_m );
Cmd_AddMacro( "time", Com_Time_m );
if (dedicated->integer)
Cmd_AddCommand ("quit", Com_Quit);
#ifndef NDEBUG
Cmd_AddCommand( "error", Com_Error_f );
Cmd_AddCommand( "errordrop", Com_ErrorDrop_f );
Cmd_AddCommand( "freeze", Com_Freeze_f );
Cmd_AddCommand( "crash", Com_Crash_f );
#endif
Sys_Init ();
srand(Sys_Milliseconds());
NET_Init ();
Netchan_Init ();
SV_Init ();
CL_Init ();
ComInitialized = true;
Cbuf_InsertFromDefer(); //Execute commands which was initialized after loading autoexec (ignore, highlight etc)
FS_ExecConfig ("postinit.cfg");
Cbuf_Execute();
// add + commands from command line
if (!Cbuf_AddLateCommands ())
{ // if the user didn't give any commands, run default action
if (!dedicated->integer)
//.........这里部分代码省略.........
示例2: CM_TraceThroughPatchCollide
//.........这里部分代码省略.........
{
offset = DotProduct(tw->offsets[planes->signbits], plane);
plane[3] -= offset;
VectorCopy(tw->start, startp);
VectorCopy(tw->end, endp);
}
if (!CM_CheckFacetPlane(plane, startp, endp, &enterFrac, &leaveFrac, &hit))
{
continue;
}
if (hit)
{
Vector4Copy(plane, bestplane);
}
for (j = 0 ; j < facet->numBorders ; j++)
{
planes = &pc->planes[facet->borderPlanes[j]];
if (facet->borderInward[j])
{
VectorNegate(planes->plane, plane);
plane[3] = -planes->plane[3];
}
else
{
VectorCopy(planes->plane, plane);
plane[3] = planes->plane[3];
}
if (tw->sphere.use)
{
// adjust the plane distance apropriately for radius
plane[3] += tw->sphere.radius;
// find the closest point on the capsule to the plane
t = DotProduct(plane, tw->sphere.offset);
if (t > 0.0f)
{
VectorSubtract(tw->start, tw->sphere.offset, startp);
VectorSubtract(tw->end, tw->sphere.offset, endp);
}
else
{
VectorAdd(tw->start, tw->sphere.offset, startp);
VectorAdd(tw->end, tw->sphere.offset, endp);
}
}
else
{
// NOTE: this works even though the plane might be flipped because the bbox is centered
offset = DotProduct(tw->offsets[planes->signbits], plane);
plane[3] += Q_fabs(offset);
VectorCopy(tw->start, startp);
VectorCopy(tw->end, endp);
}
if (!CM_CheckFacetPlane(plane, startp, endp, &enterFrac, &leaveFrac, &hit))
{
break;
}
if (hit)
{
hitnum = j;
Vector4Copy(plane, bestplane);
}
}
if (j < facet->numBorders)
{
continue;
}
// never clip against the back side
if (hitnum == facet->numBorders - 1)
{
continue;
}
if (enterFrac < leaveFrac && enterFrac >= 0)
{
if (enterFrac < tw->trace.fraction)
{
if (enterFrac < 0)
{
enterFrac = 0;
}
if (!cv)
{
cv = Cvar_Get("r_debugSurfaceUpdate", "1", 0);
}
if (cv && cv->integer)
{
debugPatchCollide = pc;
debugFacet = facet;
}
tw->trace.fraction = enterFrac;
VectorCopy(bestplane, tw->trace.plane.normal);
tw->trace.plane.dist = bestplane[3];
}
}
}
}
示例3: CL_InitInput
/*
* CL_InitInput
*/
void CL_InitInput( void )
{
if( in_initialized )
return;
Cmd_AddCommand( "in_restart", IN_Restart );
IN_Init();
Cmd_AddCommand( "centerview", IN_CenterView );
Cmd_AddCommand( "+moveup", IN_UpDown );
Cmd_AddCommand( "-moveup", IN_UpUp );
Cmd_AddCommand( "+movedown", IN_DownDown );
Cmd_AddCommand( "-movedown", IN_DownUp );
Cmd_AddCommand( "+left", IN_LeftDown );
Cmd_AddCommand( "-left", IN_LeftUp );
Cmd_AddCommand( "+right", IN_RightDown );
Cmd_AddCommand( "-right", IN_RightUp );
Cmd_AddCommand( "+forward", IN_ForwardDown );
Cmd_AddCommand( "-forward", IN_ForwardUp );
Cmd_AddCommand( "+back", IN_BackDown );
Cmd_AddCommand( "-back", IN_BackUp );
Cmd_AddCommand( "+lookup", IN_LookupDown );
Cmd_AddCommand( "-lookup", IN_LookupUp );
Cmd_AddCommand( "+lookdown", IN_LookdownDown );
Cmd_AddCommand( "-lookdown", IN_LookdownUp );
Cmd_AddCommand( "+strafe", IN_StrafeDown );
Cmd_AddCommand( "-strafe", IN_StrafeUp );
Cmd_AddCommand( "+moveleft", IN_MoveleftDown );
Cmd_AddCommand( "-moveleft", IN_MoveleftUp );
Cmd_AddCommand( "+moveright", IN_MoverightDown );
Cmd_AddCommand( "-moveright", IN_MoverightUp );
Cmd_AddCommand( "+speed", IN_SpeedDown );
Cmd_AddCommand( "-speed", IN_SpeedUp );
Cmd_AddCommand( "+attack", IN_AttackDown );
Cmd_AddCommand( "-attack", IN_AttackUp );
Cmd_AddCommand( "+use", IN_UseDown );
Cmd_AddCommand( "-use", IN_UseUp );
Cmd_AddCommand( "+klook", IN_KLookDown );
Cmd_AddCommand( "-klook", IN_KLookUp );
// wsw
Cmd_AddCommand( "+special", IN_SpecialDown );
Cmd_AddCommand( "-special", IN_SpecialUp );
Cmd_AddCommand( "+zoom", IN_ZoomDown );
Cmd_AddCommand( "-zoom", IN_ZoomUp );
cl_ucmdMaxResend = Cvar_Get( "cl_ucmdMaxResend", "3", CVAR_ARCHIVE );
cl_ucmdFPS = Cvar_Get( "cl_ucmdFPS", "62", CVAR_DEVELOPER );
#ifdef UCMDTIMENUDGE
cl_ucmdTimeNudge = Cvar_Get( "cl_ucmdTimeNudge", "0", CVAR_USERINFO|CVAR_DEVELOPER );
if( abs( cl_ucmdTimeNudge->integer ) > MAX_UCMD_TIMENUDGE )
{
if( cl_ucmdTimeNudge->integer < -MAX_UCMD_TIMENUDGE )
Cvar_SetValue( "cl_ucmdTimeNudge", -MAX_UCMD_TIMENUDGE );
else if( cl_ucmdTimeNudge->integer > MAX_UCMD_TIMENUDGE )
Cvar_SetValue( "cl_ucmdTimeNudge", MAX_UCMD_TIMENUDGE );
}
#endif
in_initialized = qtrue;
}
示例4: Sys_Init
/*
================
Sys_Init
================
*/
void Sys_Init(void)
{
OSVERSIONINFO vinfo;
#ifndef _WIN64
HMODULE module;
BOOL (WINAPI * pSetProcessDEPPolicy)(DWORD);
#endif
cvar_t *var = NULL;
// check windows version
vinfo.dwOSVersionInfoSize = sizeof(vinfo);
if (!GetVersionEx(&vinfo)) {
Sys_Error("Couldn't get OS info");
}
if (vinfo.dwPlatformId != VER_PLATFORM_WIN32_NT) {
Sys_Error(PRODUCT " requires Windows NT");
}
if (vinfo.dwMajorVersion < 5) {
Sys_Error(PRODUCT " requires Windows 2000 or greater");
}
if (!QueryPerformanceFrequency(&timer_freq))
Sys_Error("QueryPerformanceFrequency failed");
// basedir <path>
// allows the game to run from outside the data tree
sys_basedir = Cvar_Get("basedir", currentDirectory, CVAR_NOSET);
sys_libdir = Cvar_Get("libdir", currentDirectory, CVAR_NOSET);
// homedir <path>
// specifies per-user writable directory for demos, screenshots, etc
sys_homedir = Cvar_Get("homedir", "", CVAR_NOSET);
sys_forcegamelib = Cvar_Get("sys_forcegamelib", "", CVAR_NOSET);
#if USE_WINSVC
Cmd_AddCommand("installservice", Sys_InstallService_f);
Cmd_AddCommand("deleteservice", Sys_DeleteService_f);
#endif
#if USE_SYSCON
houtput = GetStdHandle(STD_OUTPUT_HANDLE);
#if USE_CLIENT
sys_viewlog = Cvar_Get("sys_viewlog", "0", CVAR_NOSET);
if (dedicated->integer || sys_viewlog->integer)
#endif
Sys_ConsoleInit();
#endif // USE_SYSCON
#if USE_DBGHELP
var = Cvar_Get("sys_disablecrashdump", "0", CVAR_NOSET);
// install our exception filter
if (!var->integer) {
mainProcessThread = GetCurrentThread();
prevExceptionFilter = SetUnhandledExceptionFilter(
Sys_ExceptionFilter);
}
#endif
#ifndef _WIN64
module = GetModuleHandle("kernel32.dll");
if (module) {
pSetProcessDEPPolicy = (PVOID)GetProcAddress(module,
"SetProcessDEPPolicy");
if (pSetProcessDEPPolicy) {
var = Cvar_Get("sys_disabledep", "0", CVAR_NOSET);
// opt-in or opt-out for DEP
if (!var->integer) {
pSetProcessDEPPolicy(
PROCESS_DEP_ENABLE |
PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION);
} else if (var->integer == 2) {
pSetProcessDEPPolicy(0);
}
}
}
#endif
}
示例5: CL_InitInput
/*
============
CL_InitInput
============
*/
void CL_InitInput( void ) {
Cmd_AddCommand ("centerview",IN_CenterView);
Cmd_AddCommand ("+moveup",IN_UpDown);
Cmd_AddCommand ("-moveup",IN_UpUp);
Cmd_AddCommand ("+movedown",IN_DownDown);
Cmd_AddCommand ("-movedown",IN_DownUp);
Cmd_AddCommand ("+left",IN_LeftDown);
Cmd_AddCommand ("-left",IN_LeftUp);
Cmd_AddCommand ("+right",IN_RightDown);
Cmd_AddCommand ("-right",IN_RightUp);
Cmd_AddCommand ("+forward",IN_ForwardDown);
Cmd_AddCommand ("-forward",IN_ForwardUp);
Cmd_AddCommand ("+back",IN_BackDown);
Cmd_AddCommand ("-back",IN_BackUp);
Cmd_AddCommand ("+lookup", IN_LookupDown);
Cmd_AddCommand ("-lookup", IN_LookupUp);
Cmd_AddCommand ("+lookdown", IN_LookdownDown);
Cmd_AddCommand ("-lookdown", IN_LookdownUp);
Cmd_AddCommand ("+strafe", IN_StrafeDown);
Cmd_AddCommand ("-strafe", IN_StrafeUp);
Cmd_AddCommand ("+moveleft", IN_MoveleftDown);
Cmd_AddCommand ("-moveleft", IN_MoveleftUp);
Cmd_AddCommand ("+moveright", IN_MoverightDown);
Cmd_AddCommand ("-moveright", IN_MoverightUp);
Cmd_AddCommand ("+speed", IN_SpeedDown);
Cmd_AddCommand ("-speed", IN_SpeedUp);
Cmd_AddCommand ("+attack", IN_Button0Down);
Cmd_AddCommand ("-attack", IN_Button0Up);
Cmd_AddCommand ("+button0", IN_Button0Down);
Cmd_AddCommand ("-button0", IN_Button0Up);
Cmd_AddCommand ("+button1", IN_Button1Down);
Cmd_AddCommand ("-button1", IN_Button1Up);
Cmd_AddCommand ("+button2", IN_Button2Down);
Cmd_AddCommand ("-button2", IN_Button2Up);
Cmd_AddCommand ("+button3", IN_Button3Down);
Cmd_AddCommand ("-button3", IN_Button3Up);
Cmd_AddCommand ("+button4", IN_Button4Down);
Cmd_AddCommand ("-button4", IN_Button4Up);
Cmd_AddCommand ("+button5", IN_Button5Down);
Cmd_AddCommand ("-button5", IN_Button5Up);
Cmd_AddCommand ("+button6", IN_Button6Down);
Cmd_AddCommand ("-button6", IN_Button6Up);
Cmd_AddCommand ("+button7", IN_Button7Down);
Cmd_AddCommand ("-button7", IN_Button7Up);
Cmd_AddCommand ("+button8", IN_Button8Down);
Cmd_AddCommand ("-button8", IN_Button8Up);
Cmd_AddCommand ("+button9", IN_Button9Down);
Cmd_AddCommand ("-button9", IN_Button9Up);
Cmd_AddCommand ("+button10", IN_Button10Down);
Cmd_AddCommand ("-button10", IN_Button10Up);
Cmd_AddCommand ("+button11", IN_Button11Down);
Cmd_AddCommand ("-button11", IN_Button11Up);
Cmd_AddCommand ("+button12", IN_Button12Down);
Cmd_AddCommand ("-button12", IN_Button12Up);
Cmd_AddCommand ("+button13", IN_Button13Down);
Cmd_AddCommand ("-button13", IN_Button13Up);
Cmd_AddCommand ("+button14", IN_Button14Down);
Cmd_AddCommand ("-button14", IN_Button14Up);
Cmd_AddCommand ("+mlook", IN_MLookDown);
Cmd_AddCommand ("-mlook", IN_MLookUp);
cl_nodelta = Cvar_Get ("cl_nodelta", "0", 0);
cl_debugMove = Cvar_Get ("cl_debugMove", "0", 0);
}
示例6: S_Base_Init
/*
================
S_Init
================
*/
qboolean S_Base_Init( soundInterface_t *si ) {
qboolean r;
if( !si ) {
return qfalse;
}
#ifndef NO_DMAHD
s_khz = Cvar_Get ("s_khz", "44", CVAR_ARCHIVE);
#else
s_khz = Cvar_Get ("s_khz", "22", CVAR_ARCHIVE);
#endif
s_mixahead = Cvar_Get ("s_mixahead", "0.2", CVAR_ARCHIVE);
s_mixPreStep = Cvar_Get ("s_mixPreStep", "0.05", CVAR_ARCHIVE);
s_show = Cvar_Get ("s_show", "0", CVAR_CHEAT);
s_testsound = Cvar_Get ("s_testsound", "0", CVAR_CHEAT);
s_dev = Cvar_Get ("s_dev", "", CVAR_ARCHIVE);
s_alttabmute = Cvar_Get ("s_alttabmute", "1", CVAR_ARCHIVE);
Cmd_AddCommand( "s_devlist", S_dmaHD_devlist );
r = SNDDMA_Init();
if ( r ) {
s_soundStarted = 1;
s_soundMuted = 1;
// s_numSfx = 0;
Com_Memset(sfxHash, 0, sizeof(sfx_t *)*LOOP_HASH);
s_soundtime = 0;
s_paintedtime = 0;
S_Base_StopAllSounds( );
} else {
return qfalse;
}
si->Shutdown = S_Base_Shutdown;
si->StartSound = S_Base_StartSound;
si->StartLocalSound = S_Base_StartLocalSound;
si->StartBackgroundTrack = S_Base_StartBackgroundTrack;
si->StopBackgroundTrack = S_Base_StopBackgroundTrack;
si->RawSamples = S_Base_RawSamples;
si->StopAllSounds = S_Base_StopAllSounds;
si->ClearLoopingSounds = S_Base_ClearLoopingSounds;
si->AddLoopingSound = S_Base_AddLoopingSound;
si->AddRealLoopingSound = S_Base_AddRealLoopingSound;
si->StopLoopingSound = S_Base_StopLoopingSound;
si->Respatialize = S_Base_Respatialize;
si->UpdateEntityPosition = S_Base_UpdateEntityPosition;
si->Update = S_Base_Update;
si->DisableSounds = S_Base_DisableSounds;
si->BeginRegistration = S_Base_BeginRegistration;
si->RegisterSound = S_Base_RegisterSound;
si->ClearSoundBuffer = S_Base_ClearSoundBuffer;
si->SoundInfo = S_Base_SoundInfo;
si->SoundList = S_Base_SoundList;
#ifndef NO_DMAHD
if (dmaHD_Enabled()) return dmaHD_Init(si);
#endif
return qtrue;
}
示例7: CL_SystemInfoChanged
/*
==================
CL_SystemInfoChanged
The systeminfo configstring has been changed, so parse
new information out of it. This will happen at every
gamestate, and possibly during gameplay.
==================
*/
void CL_SystemInfoChanged( void ) {
char *systemInfo;
const char *s, *t;
char key[BIG_INFO_KEY];
char value[BIG_INFO_VALUE];
qboolean gameSet;
systemInfo = cl.gameState.stringData + cl.gameState.stringOffsets[ CS_SYSTEMINFO ];
// NOTE TTimo:
// when the serverId changes, any further messages we send to the server will use this new serverId
// https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=475
// in some cases, outdated cp commands might get sent with this news serverId
cl.serverId = atoi( Info_ValueForKey( systemInfo, "sv_serverid" ) );
#ifdef USE_VOIP
#ifdef LEGACY_PROTOCOL
if(clc.compat)
clc.voipEnabled = qfalse;
else
#endif
{
s = Info_ValueForKey( systemInfo, "sv_voip" );
clc.voipEnabled = atoi(s);
}
#endif
// don't set any vars when playing a demo
if ( clc.demoplaying ) {
return;
}
s = Info_ValueForKey( systemInfo, "sv_cheats" );
cl_connectedToCheatServer = atoi( s );
if ( !cl_connectedToCheatServer ) {
Cvar_SetCheatState();
}
// check pure server string
s = Info_ValueForKey( systemInfo, "sv_paks" );
t = Info_ValueForKey( systemInfo, "sv_pakNames" );
FS_PureServerSetLoadedPaks( s, t );
s = Info_ValueForKey( systemInfo, "sv_referencedPaks" );
t = Info_ValueForKey( systemInfo, "sv_referencedPakNames" );
FS_PureServerSetReferencedPaks( s, t );
gameSet = qfalse;
// scan through all the variables in the systeminfo and locally set cvars to match
s = systemInfo;
while ( s ) {
int cvar_flags;
Info_NextPair( &s, key, value );
if ( !key[0] ) {
break;
}
// ehw!
if (!Q_stricmp(key, "fs_game"))
{
if(FS_CheckDirTraversal(value))
{
Com_Printf(S_COLOR_YELLOW "WARNING: Server sent invalid fs_game value %s\n", value);
continue;
}
gameSet = qtrue;
}
if((cvar_flags = Cvar_Flags(key)) == CVAR_NONEXISTENT)
Cvar_Get(key, value, CVAR_SERVER_CREATED | CVAR_ROM);
else
{
// If this cvar may not be modified by a server discard the value.
// I have added exceptions for sv_fps, pmove_fixed and pmove_msec. These should relly be corrected in the game logic code,
// but they are required for a lot of mods and not all can be changed.
// vq3 uses pmove_fixed, pmove_msec and g_synchronousClients. Most unlagged mods uses sv_fps too.
if(!(cvar_flags & (CVAR_SYSTEMINFO | CVAR_SERVER_CREATED)) && Q_stricmp(key, "sv_fps") && Q_stricmp(key, "pmove_fixed") &&\
Q_stricmp(key, "pmove_msec") && Q_stricmp(key, "g_synchronousClients"))
{
#ifndef STANDALONE
if(Q_stricmp(key, "g_synchronousClients") && Q_stricmp(key, "pmove_fixed") &&
Q_stricmp(key, "pmove_msec"))
#endif
{
Com_Printf(S_COLOR_YELLOW "WARNING: server is not allowed to set %s=%s\n", key, value);
continue;
}
}
Cvar_SetSafe(key, value);
//.........这里部分代码省略.........
示例8: Sys_Init
void Sys_Init( void ) {
int cpuid;
// make sure the timer is high precision, otherwise
// NT gets 18ms resolution
timeBeginPeriod( 1 );
Cmd_AddCommand ("in_restart", Sys_In_Restart_f);
#if MEM_DEBUG
SH_Register();
#endif
g_wv.osversion.dwOSVersionInfoSize = sizeof( g_wv.osversion );
if (!GetVersionEx (&g_wv.osversion))
Sys_Error ("Couldn't get OS info");
if (Sys_IsExpired()) {
g_wv.osversion.dwMajorVersion = 0;
}
if (g_wv.osversion.dwMajorVersion < 4)
Sys_Error ("This game requires Windows version 4 or greater");
if (g_wv.osversion.dwPlatformId == VER_PLATFORM_WIN32s)
Sys_Error ("This game doesn't run on Win32s");
if ( g_wv.osversion.dwPlatformId == VER_PLATFORM_WIN32_NT )
{
Cvar_Set( "arch", "winnt" );
}
else if ( g_wv.osversion.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS )
{
if ( LOWORD( g_wv.osversion.dwBuildNumber ) >= WIN98_BUILD_NUMBER )
{
Cvar_Set( "arch", "win98" );
}
else if ( LOWORD( g_wv.osversion.dwBuildNumber ) >= OSR2_BUILD_NUMBER )
{
Cvar_Set( "arch", "win95 osr2.x" );
}
else
{
Cvar_Set( "arch", "win95" );
}
}
else
{
Cvar_Set( "arch", "unknown Windows variant" );
}
// save out a couple things in rom cvars for the renderer to access
Cvar_Get( "win_hinstance", va("%i", (int)g_wv.hInstance), CVAR_ROM );
Cvar_Get( "win_wndproc", va("%i", (int)MainWndProc), CVAR_ROM );
//
// figure out our CPU
//
Cvar_Get( "sys_cpustring", "detect", 0 );
if ( !Q_stricmp( Cvar_VariableString( "sys_cpustring"), "detect" ) )
{
Com_Printf( "...detecting CPU, found " );
cpuid = Sys_GetProcessorId();
switch ( cpuid )
{
case CPUID_GENERIC:
Cvar_Set( "sys_cpustring", "generic" );
break;
case CPUID_INTEL_UNSUPPORTED:
Cvar_Set( "sys_cpustring", "x86 (pre-Pentium)" );
break;
case CPUID_INTEL_PENTIUM:
Cvar_Set( "sys_cpustring", "x86 (P5/PPro, non-MMX)" );
break;
case CPUID_INTEL_MMX:
Cvar_Set( "sys_cpustring", "x86 (P5/Pentium2, MMX)" );
break;
case CPUID_INTEL_KATMAI:
Cvar_Set( "sys_cpustring", "Intel Pentium III" );
break;
case CPUID_INTEL_WILLIAMETTE:
Cvar_Set( "sys_cpustring", "Intel Pentium IV" );
break;
case CPUID_AMD_3DNOW:
Cvar_Set( "sys_cpustring", "AMD w/ 3DNow!" );
break;
case CPUID_AXP:
Cvar_Set( "sys_cpustring", "Alpha AXP" );
break;
default:
Com_Error( ERR_FATAL, "Unknown cpu type %d\n", cpuid );
break;
}
}
else
{
Com_Printf( "...forcing CPU type to " );
if ( !Q_stricmp( Cvar_VariableString( "sys_cpustring" ), "generic" ) )
{
cpuid = CPUID_GENERIC;
//.........这里部分代码省略.........
示例9: UI_Cvar_Create
static void UI_Cvar_Create( const char *var_name, const char *var_value, int flags ) {
Cvar_Get( var_name, var_value, flags );
}
示例10: GLimp_SetMode
//.........这里部分代码省略.........
/* Need alpha or else SGIs choose 36+ bit RGB mode */
SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, 1);
#endif
SDL_GL_SetAttribute( SDL_GL_RED_SIZE, sdlcolorbits );
SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, sdlcolorbits );
SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, sdlcolorbits );
SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, tdepthbits );
SDL_GL_SetAttribute( SDL_GL_STENCIL_SIZE, tstencilbits );
SDL_GL_SetAttribute( SDL_GL_MULTISAMPLEBUFFERS, samples ? 1 : 0 );
SDL_GL_SetAttribute( SDL_GL_MULTISAMPLESAMPLES, samples );
/*if(r_stereoEnabled->integer)
{
glConfig.stereoEnabled = qtrue;
SDL_GL_SetAttribute(SDL_GL_STEREO, 1);
}
else
{*/
glConfig.stereoEnabled = qfalse;
SDL_GL_SetAttribute(SDL_GL_STEREO, 0);
//}
SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );
#if 0 // See http://bugzilla.icculus.org/show_bug.cgi?id=3526
// If not allowing software GL, demand accelerated
if( !r_allowSoftwareGL->integer )
{
if( SDL_GL_SetAttribute( SDL_GL_ACCELERATED_VISUAL, 1 ) < 0 )
{
Com_Printf( "Unable to guarantee accelerated "
"visual with libSDL < 1.2.10\n" );
}
}
#endif
if( SDL_GL_SetSwapInterval(r_swapInterval->integer ) < 0 )
Com_Printf( "SDL_GL_SetSwapInterval not supported\n" );
#ifdef USE_ICON
{
SDL_Surface *icon = SDL_CreateRGBSurfaceFrom(
(void *)CLIENT_WINDOW_ICON.pixel_data,
CLIENT_WINDOW_ICON.width,
CLIENT_WINDOW_ICON.height,
CLIENT_WINDOW_ICON.bytes_per_pixel * 8,
CLIENT_WINDOW_ICON.bytes_per_pixel * CLIENT_WINDOW_ICON.width,
#ifdef Q3_LITTLE_ENDIAN
0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000
#else
0xFF000000, 0x00FF0000, 0x0000FF00, 0x000000FF
#endif
);
SDL_WM_SetIcon( icon, NULL );
SDL_FreeSurface( icon );
}
#endif
// FIXME: Product name
cvar_t *com_productName = Cvar_Get("com_productName", "OpenJK" /* PRODUCT_NAME */, CVAR_ROM);
//SDL_SetWindowTitle(com_productName->string, com_productName->string);
SDL_ShowCursor(0);
if (!(window = SDL_CreateWindow(com_productName->string, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, glConfig.vidWidth, glConfig.vidHeight, flags)))
{
Com_Printf( "SDL_CreateWindow failed: %s\n", SDL_GetError( ) );
continue;
}
opengl_context = SDL_GL_CreateContext(window);
Com_Printf( "Using %d/%d/%d Color bits, %d depth, %d stencil display.\n",
sdlcolorbits, sdlcolorbits, sdlcolorbits, tdepthbits, tstencilbits);
glConfig.colorBits = tcolorbits;
glConfig.depthBits = tdepthbits;
glConfig.stencilBits = tstencilbits;
break;
}
GLimp_DetectAvailableModes();
if (!window)
{
Com_Printf( "Couldn't get a visual\n" );
return RSERR_INVALID_MODE;
}
screen = window;
// FIXME: Defines needed here
glstring = (char *) qglGetString (GL_RENDERER);
Com_Printf( "GL_RENDERER: %s\n", glstring );
return RSERR_OK;
#endif
}
示例11: GLimp_Init
void GLimp_Init( void )
{
Cvar_Get( "r_restartOnResize", "1", CVAR_ARCHIVE );
Cvar_Get( "r_resizeDelay", "1000", CVAR_ARCHIVE );
r_allowSoftwareGL = Cvar_Get( "r_allowSoftwareGL", "0", CVAR_LATCH );
r_sdlDriver = Cvar_Get( "r_sdlDriver", "", CVAR_ROM );
r_allowResize = Cvar_Get( "r_allowResize", "0", CVAR_ARCHIVE );
r_centerWindow = Cvar_Get( "r_centerWindow", "0", CVAR_ARCHIVE );
r_noborder = Cvar_Get( "r_noborder", "0", CVAR_ARCHIVE );
/* if( Cvar_VariableIntegerValue( "com_abnormalExit" ) )
{
Cvar_Set( "r_mode", va( "%d", R_MODE_FALLBACK ) );
Cvar_Set( "r_picmap", "1" );
Cvar_Set( "r_texturebits", "0" );
Cvar_Set( "r_textureMode", "GL_LINEAR_MIPMAP_NEAREST" );
Cvar_Set( "r_fullscreen", "0" );
Cvar_Set( "r_centerWindow", "0" );
Cvar_Set( "com_abnormalExit", "0" );
}*/
Sys_SetEnv( "SDL_VIDEO_CENTERED", r_centerWindow->integer ? "1" : "" );
// Create the window and set up the context
if(GLimp_StartDriverAndSetMode(r_mode->integer, r_fullscreen->integer, r_noborder->integer))
goto success;
// Try again, this time in a platform specific "safe mode"
/* Sys_GLimpSafeInit( );
if(GLimp_StartDriverAndSetMode(r_mode->integer, r_fullscreen->integer, qfalse))
goto success; */
/* // Finally, try the default screen resolution
if( r_mode->integer != R_MODE_FALLBACK )
{
Com_Printf( "Setting r_mode %d failed, falling back on r_mode %d\n",
r_mode->integer, R_MODE_FALLBACK );
if(GLimp_StartDriverAndSetMode(R_MODE_FALLBACK, qfalse, qfalse))
goto success;
}*/
// Nothing worked, give up
Com_Error( ERR_FATAL, "GLimp_Init() - could not load OpenGL subsystem" );
success:
// This values force the UI to disable driver selection
// glConfig.driverType = GLDRV_ICD;
// glConfig.hardwareType = GLHW_GENERIC;
glConfig.deviceSupportsGamma = (qboolean)(SDL_SetGamma( screen, 1.0f, 1.0f, 1.0f ) >= 0);
// Mysteriously, if you use an NVidia graphics card and multiple monitors,
// SDL_SetGamma will incorrectly return false... the first time; ask
// again and you get the correct answer. This is a suspected driver bug, see
// http://bugzilla.icculus.org/show_bug.cgi?id=4316
glConfig.deviceSupportsGamma = (qboolean)(SDL_SetGamma( screen, 1.0f, 1.0f, 1.0f ) >= 0);
if ( -1 == r_ignorehwgamma->integer)
glConfig.deviceSupportsGamma = 1;
if ( 1 == r_ignorehwgamma->integer)
glConfig.deviceSupportsGamma = 0;
// get our config strings
glConfig.vendor_string = (const char *) qglGetString (GL_VENDOR);
glConfig.renderer_string = (const char *) qglGetString (GL_RENDERER);
glConfig.version_string = (const char *) qglGetString (GL_VERSION);
glConfig.extensions_string = (const char *) qglGetString (GL_EXTENSIONS);
// OpenGL driver constants
qglGetIntegerv( GL_MAX_TEXTURE_SIZE, &glConfig.maxTextureSize );
// stubbed or broken drivers may have reported 0...
if ( glConfig.maxTextureSize <= 0 )
{
glConfig.maxTextureSize = 0;
}
// initialize extensions
GLimp_InitExtensions( );
Cvar_Get( "r_availableModes", "", CVAR_ROM );
// This depends on SDL_INIT_VIDEO, hence having it here
IN_Init( screen );
}
示例12: SNDDMA_Init
qboolean SNDDMA_Init(void)
{
int rc;
int fmt;
int tmp;
int i;
// char *s; // bk001204 - unused
struct audio_buf_info info;
int caps;
if (snd_inited)
return 1;
if (!snddevice) {
sndbits = Cvar_Get("sndbits", "16", CVAR_ARCHIVE);
sndspeed = Cvar_Get("sndspeed", "0", CVAR_ARCHIVE);
sndchannels = Cvar_Get("sndchannels", "2", CVAR_ARCHIVE);
snddevice = Cvar_Get("snddevice", "/dev/dsp", CVAR_ARCHIVE);
}
// open /dev/dsp, confirm capability to mmap, and get size of dma buffer
if (!audio_fd) {
audio_fd = open(snddevice->string, O_RDWR);
if (audio_fd < 0) {
perror(snddevice->string);
Com_Printf("Could not open %s\n", snddevice->string);
return 0;
}
}
if (ioctl(audio_fd, SNDCTL_DSP_GETCAPS, &caps) == -1) {
perror(snddevice->string);
Com_Printf("Sound driver too old\n");
close(audio_fd);
return 0;
}
if (!(caps & DSP_CAP_TRIGGER) || !(caps & DSP_CAP_MMAP)) {
Com_Printf("Sorry but your soundcard can't do this\n");
close(audio_fd);
return 0;
}
/* SNDCTL_DSP_GETOSPACE moved to be called later */
// set sample bits & speed
dma.samplebits = (int)sndbits->value;
if (dma.samplebits != 16 && dma.samplebits != 8) {
ioctl(audio_fd, SNDCTL_DSP_GETFMTS, &fmt);
if (fmt & AFMT_S16_LE)
dma.samplebits = 16;
else if (fmt & AFMT_U8)
dma.samplebits = 8;
}
dma.speed = (int)sndspeed->value;
if (!dma.speed) {
for (i=0 ; i<sizeof(tryrates)/4 ; i++)
if (!ioctl(audio_fd, SNDCTL_DSP_SPEED, &tryrates[i]))
break;
dma.speed = tryrates[i];
}
dma.channels = (int)sndchannels->value;
if (dma.channels < 1 || dma.channels > 2)
dma.channels = 2;
/* mmap() call moved forward */
tmp = 0;
if (dma.channels == 2)
tmp = 1;
rc = ioctl(audio_fd, SNDCTL_DSP_STEREO, &tmp);
if (rc < 0) {
perror(snddevice->string);
Com_Printf("Could not set %s to stereo=%d", snddevice->string, dma.channels);
close(audio_fd);
return 0;
}
if (tmp)
dma.channels = 2;
else
dma.channels = 1;
rc = ioctl(audio_fd, SNDCTL_DSP_SPEED, &dma.speed);
if (rc < 0) {
perror(snddevice->string);
Com_Printf("Could not set %s speed to %d", snddevice->string, dma.speed);
close(audio_fd);
return 0;
}
if (dma.samplebits == 16) {
rc = AFMT_S16_LE;
rc = ioctl(audio_fd, SNDCTL_DSP_SETFMT, &rc);
if (rc < 0) {
perror(snddevice->string);
//.........这里部分代码省略.........
示例13: IN_InitJoystick
/*
===============
IN_InitJoystick
===============
*/
static void IN_InitJoystick( void )
{
int i = 0;
int total = 0;
char buf[16384] = "";
if (stick != NULL)
SDL_JoystickClose(stick);
stick = NULL;
memset(&stick_state, '\0', sizeof (stick_state));
if (!SDL_WasInit(SDL_INIT_JOYSTICK))
{
Com_DPrintf("Calling SDL_Init(SDL_INIT_JOYSTICK)...\n");
if (SDL_Init(SDL_INIT_JOYSTICK) == -1)
{
Com_DPrintf("SDL_Init(SDL_INIT_JOYSTICK) failed: %s\n", SDL_GetError());
return;
}
Com_DPrintf("SDL_Init(SDL_INIT_JOYSTICK) passed.\n");
}
total = SDL_NumJoysticks();
Com_DPrintf("%d possible joysticks\n", total);
// Print list and build cvar to allow ui to select joystick.
for (i = 0; i < total; i++)
{
Q_strcat(buf, sizeof(buf), SDL_JoystickNameForIndex(i));
Q_strcat(buf, sizeof(buf), "\n");
}
Cvar_Get( "in_availableJoysticks", buf, CVAR_ROM );
if( !in_joystick->integer ) {
Com_DPrintf( "Joystick is not active.\n" );
SDL_QuitSubSystem(SDL_INIT_JOYSTICK);
return;
}
in_joystickNo = Cvar_Get( "in_joystickNo", "0", CVAR_ARCHIVE );
if( in_joystickNo->integer < 0 || in_joystickNo->integer >= total )
Cvar_Set( "in_joystickNo", "0" );
in_joystickUseAnalog = Cvar_Get( "in_joystickUseAnalog", "0", CVAR_ARCHIVE );
in_joystickThreshold = Cvar_Get( "joy_threshold", "0.15", CVAR_ARCHIVE );
stick = SDL_JoystickOpen( in_joystickNo->integer );
if (stick == NULL) {
Com_DPrintf( "No joystick opened.\n" );
return;
}
Com_DPrintf( "Joystick %d opened\n", in_joystickNo->integer );
Com_DPrintf( "Name: %s\n", SDL_JoystickNameForIndex(in_joystickNo->integer) );
Com_DPrintf( "Axes: %d\n", SDL_JoystickNumAxes(stick) );
Com_DPrintf( "Hats: %d\n", SDL_JoystickNumHats(stick) );
Com_DPrintf( "Buttons: %d\n", SDL_JoystickNumButtons(stick) );
Com_DPrintf( "Balls: %d\n", SDL_JoystickNumBalls(stick) );
Com_DPrintf( "Use Analog: %s\n", in_joystickUseAnalog->integer ? "Yes" : "No" );
Com_DPrintf( "Threshold: %f\n", in_joystickThreshold->value );
SDL_JoystickEventState(SDL_QUERY);
}
示例14: Com_Printf
/*
============
Cvar_Set2
============
*/
cvar_t *Cvar_Set2( const char *var_name, const char *value, uint32_t defaultFlags, qboolean force ) {
cvar_t *var;
if ( !Cvar_ValidateString( var_name ) ) {
Com_Printf("invalid cvar name string: %s\n", var_name );
var_name = "BADNAME";
}
#if 0 // FIXME
if ( value && !Cvar_ValidateString( value ) ) {
Com_Printf("invalid cvar value string: %s\n", value );
var_value = "BADVALUE";
}
#endif
var = Cvar_FindVar (var_name);
if (!var) {
if ( !value ) {
return NULL;
}
// create it
return Cvar_Get( var_name, value, defaultFlags );
}
if (!value ) {
value = var->resetString;
}
value = Cvar_Validate(var, value, qtrue);
if((var->flags & CVAR_LATCH) && var->latchedString)
{
if(!strcmp(value, var->string))
{
Cvar_FreeString(var->latchedString);
var->latchedString = NULL;
return var;
}
if(!strcmp(value, var->latchedString))
return var;
}
else if(!strcmp(value, var->string))
return var;
// note what types of cvars have been modified (userinfo, archive, serverinfo, systeminfo)
cvar_modifiedFlags |= var->flags;
if (!force)
{
if ( (var->flags & (CVAR_SYSTEMINFO|CVAR_SERVER_CREATED)) && com_sv_running && !com_sv_running->integer && CL_ConnectedToServer() )
{
Com_Printf ("%s can only be set by server.\n", var_name);
return var;
}
if (var->flags & CVAR_ROM)
{
Com_Printf ("%s is read only.\n", var_name);
return var;
}
if (var->flags & CVAR_INIT)
{
Com_Printf ("%s is write protected.\n", var_name);
return var;
}
if (var->flags & CVAR_LATCH)
{
if (var->latchedString)
{
if (strcmp(value, var->latchedString) == 0)
return var;
Cvar_FreeString (var->latchedString);
}
else
{
if (strcmp(value, var->string) == 0)
return var;
}
Com_Printf ("%s will be changed upon restarting.\n", var_name);
var->latchedString = CopyString(value);
var->modified = qtrue;
var->modificationCount++;
return var;
}
if ( (var->flags & CVAR_CHEAT) && !cvar_cheats->integer )
{
Com_Printf ("%s is cheat protected.\n", var_name);
return var;
}
}
//.........这里部分代码省略.........
示例15: Com_Printf
/*
============
Cvar_Set2
============
*/
cvar_t *Cvar_Set2( const char *var_name, const char *value, qboolean force ) {
cvar_t *var;
if ( !Cvar_ValidateString( var_name ) ) {
Com_Printf("invalid cvar name string: %s\n", var_name );
var_name = "BADNAME";
}
#if 0 // FIXME
if ( value && !Cvar_ValidateString( value ) ) {
Com_Printf("invalid cvar value string: %s\n", value );
var_value = "BADVALUE";
}
#endif
var = Cvar_FindVar (var_name);
if (!var) {
if ( !value ) {
return NULL;
}
// create it
if ( !force ) {
return Cvar_Get( var_name, value, CVAR_USER_CREATED );
} else {
return Cvar_Get (var_name, value, 0);
}
}
// Dont display the update when its internal
if ( !(var->flags & CVAR_INTERNAL) )
{
Com_DPrintf( "Cvar_Set2: %s %s\n", var_name, value );
}
if (!value ) {
value = var->resetString;
}
if (!strcmp(value,var->string)) {
return var;
}
// note what types of cvars have been modified (userinfo, archive, serverinfo, systeminfo)
cvar_modifiedFlags |= var->flags;
if (!force)
{
if (var->flags & CVAR_ROM)
{
Com_Printf ("%s is read only.\n", var_name);
return var;
}
if (var->flags & CVAR_INIT)
{
Com_Printf ("%s is write protected.\n", var_name);
return var;
}
if (var->flags & CVAR_LATCH)
{
if (var->latchedString)
{
if (strcmp(value, var->latchedString) == 0)
return var;
Z_Free (var->latchedString);
}
else
{
if (strcmp(value, var->string) == 0)
return var;
}
Com_Printf ("%s will be changed upon restarting.\n", var_name);
var->latchedString = CopyString(value);
var->modified = qtrue;
var->modificationCount++;
return var;
}
if ( (var->flags & CVAR_CHEAT) && !cvar_cheats->integer )
{
Com_Printf ("%s is cheat protected.\n", var_name);
return var;
}
}
else
{
if (var->latchedString)
{
Z_Free (var->latchedString);
var->latchedString = NULL;
}
}
//.........这里部分代码省略.........