这篇教程C++ Cvar_Get函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中Cvar_Get函数的典型用法代码示例。如果您正苦于以下问题:C++ Cvar_Get函数的具体用法?C++ Cvar_Get怎么用?C++ Cvar_Get使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了Cvar_Get函数的26个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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)//.........这里部分代码省略.........
开发者ID:chrisnew,项目名称:quake2,代码行数:101,
示例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]; } } }}
开发者ID:etlegacy,项目名称:etlegacy,代码行数:101,
示例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;}
开发者ID:Turupawn,项目名称:DogeWarsow,代码行数:65,
示例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}
开发者ID:m4son,项目名称:q2pro,代码行数:86,
示例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);}
开发者ID:jonbwhite,项目名称:quake-wii,代码行数:70,
示例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;}
开发者ID:JERUKA9,项目名称:ioq3-for-UrbanTerror-4,代码行数:70,
示例7: CL_SystemInfoChanged/*==================CL_SystemInfoChangedThe systeminfo configstring has been changed, so parsenew information out of it. This will happen at everygamestate, 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);//.........这里部分代码省略.........
开发者ID:Livewingx,项目名称:engine,代码行数:101,
示例8: Sys_Initvoid 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;//.........这里部分代码省略.........
开发者ID:Hasimir,项目名称:jedi-outcast-1,代码行数:101,
示例9: UI_Cvar_Createstatic void UI_Cvar_Create( const char *var_name, const char *var_value, int flags ) { Cvar_Get( var_name, var_value, flags );}
开发者ID:5Quintessential,项目名称:jedioutcast,代码行数:3,
示例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}
开发者ID:iMp-Rex,项目名称:OpenJK,代码行数:101,
示例11: GLimp_Initvoid 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 );}
开发者ID:iMp-Rex,项目名称:OpenJK,代码行数:86,
示例12: SNDDMA_Initqboolean 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);//.........这里部分代码省略.........
开发者ID:Barbatos,项目名称:ioq3-bumpy-UrbanTerror-4.x,代码行数:101,
示例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);}
开发者ID:BruceJohnJennerLawso,项目名称:OpenJK,代码行数:72,
示例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; } }//.........这里部分代码省略.........
开发者ID:LuisMars,项目名称:OpenJK,代码行数:101,
示例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; } }//.........这里部分代码省略.........
开发者ID:blaenk,项目名称:jedioutcast,代码行数:101,
示例16: Netchan_Init/*===============Netchan_Init===============*/void Netchan_Init( int port ) { port &= 0xffff; showpackets = Cvar_Get ("showpackets", "0", CVAR_TEMP ); showdrop = Cvar_Get ("showdrop", "0", CVAR_TEMP ); qport = Cvar_Get ("net_qport", va("%i", port), CVAR_INIT );}
开发者ID:AHPlankton,项目名称:Quake-III-Arena,代码行数:12,
示例17: SNDDMA_Init/*===============SNDDMA_Init===============*/qboolean SNDDMA_Init(void){ SDL_AudioSpec desired; SDL_AudioSpec obtained; const char *driver_name; const char *device_name; int tmp; if (snd_inited) { return qtrue; } Cmd_AddCommand("sndlist", SND_DeviceList); // before rc 2 we have had own s_sdl_ cvars to set this // changed back to use genuine cvar names // - it's more compatible when existing profiles are used // - we don't have to touch menu & ui to make speed/khz work (uses s_khz!) s_bits = Cvar_Get("s_bits", "16", CVAR_LATCH | CVAR_ARCHIVE); s_khz = Cvar_Get("s_khz", "44", CVAR_LATCH | CVAR_ARCHIVE); s_sdlChannels = Cvar_Get("s_channels", "2", CVAR_LATCH | CVAR_ARCHIVE); s_sdlDevSamps = Cvar_Get("s_sdlDevSamps", "0", CVAR_LATCH | CVAR_ARCHIVE); s_sdlMixSamps = Cvar_Get("s_sdlMixSamps", "0", CVAR_LATCH | CVAR_ARCHIVE); s_device = Cvar_Get("s_device", "-1", CVAR_LATCH | CVAR_ARCHIVE); Com_Printf("SDL_Init( SDL_INIT_AUDIO )... "); if (!SDL_WasInit(SDL_INIT_AUDIO)) { if (SDL_Init(SDL_INIT_AUDIO) < 0) { Com_Printf("FAILED (%s)/n", SDL_GetError()); return qfalse; } } Com_Printf("OK/n"); driver_name = SDL_GetCurrentAudioDriver(); if (driver_name) { Com_Printf("SDL audio driver is /"%s/"./n", driver_name); } else { Com_Printf("SDL audio driver isn't initialized./n"); } memset(&desired, '/0', sizeof(desired)); memset(&obtained, '/0', sizeof(obtained)); tmp = ((int) s_bits->value); if ((tmp != 16) && (tmp != 8)) { tmp = 16; } desired.freq = (int) s_khz->value * 1000; // desired freq expects Hz not kHz if (!desired.freq) { desired.freq = 22050; } // dirty correction for profile values if (desired.freq == 11000) { desired.freq = 11025; } else if (desired.freq == 22000) { desired.freq = 22050; } else if (desired.freq == 44000) { desired.freq = 44100; } else { desired.freq = 22050; } desired.format = ((tmp == 16) ? AUDIO_S16SYS : AUDIO_U8); // I dunno if this is the best idea, but I'll give it a try... // should probably check a cvar for this... if (s_sdlDevSamps->value) { desired.samples = s_sdlDevSamps->value; } else { // just pick a sane default.//.........这里部分代码省略.........
开发者ID:raedwulf,项目名称:etlegacy,代码行数:101,
示例18: Cvar_FindVar/*============Cvar_Set2============*/cvar_t *Cvar_Set2 (char *var_name, char *value, qboolean force){ cvar_t *var; var = Cvar_FindVar (var_name); if (!var) { // create it return Cvar_Get (var_name, value, 0); } if (var->flags & (CVAR_USERINFO | CVAR_SERVERINFO)) { if (!Cvar_InfoValidate (value)) { Com_Printf("invalid info cvar value/n"); return var; } } if (!force) { if (var->flags & CVAR_NOSET) { Com_Printf ("%s is write protected./n", var_name); return var; } if (var->flags & CVAR_LATCH) { if (var->latched_string) { if (strcmp(value, var->latched_string) == 0) return var; Z_Free (var->latched_string); } else { if (strcmp(value, var->string) == 0) return var; } if (Com_ServerState()) { Com_Printf ("%s will be changed for next game./n", var_name); var->latched_string = CopyString(value); } else { var->string = CopyString(value); var->value = atof (var->string); if (!strcmp(var->name, "game")) { FS_SetGamedir (var->string); FS_ExecAutoexec (); } } return var; } } else { if (var->latched_string) { Z_Free (var->latched_string); var->latched_string = NULL; } } if (!strcmp(value, var->string)) return var; // not changed var->modified = true; if (var->flags & CVAR_USERINFO) userinfo_modified = true; // transmit at next oportunity Z_Free (var->string); // free the old value string var->string = CopyString(value); var->value = atof (var->string); return var;}
开发者ID:TechnoCrunch,项目名称:dxquake2,代码行数:88,
示例19: GLimp_SetGammavoid GLimp_SetGamma(float gamma){#if FIND_GAMMA EXEC_ONCE(appWPrintf("Find gamma mode!/n")); float a, b; // y = ax + b a = Cvar_Get("a","1")->value;# if !FIND_GAMMA2 b = Cvar_Get("b","0.5")->value;# else b = Cvar_Get("b","-0.5")->value;# endif#endif if (!gammaStored) return; gamma = bound(gamma, 0.5, 3); float contr = bound(r_contrast->value, 0.1, 2); float bright = bound(r_brightness->value, 0.1, 2); float invGamma = 1.0f / gamma; float overbright = gl_config.overbright + 1; for (int i = 0; i < 256; i++) {#if 0 float tmp = (i / 255.0f * overbright - 0.5f) * contr + 0.5f; if (tmp < 0) tmp = 0; // without this, can get semi-negative picture when r_gamma=0.5 (invGamma=2, sqr func) int v = appRound(65535.0f * (pow(tmp, invGamma) + bright - 1));#else // taken from UT2003 // note: ut_br = br-0.5, ut_contr = contr-0.5 (replace later: norm. bright=0.5, contr=0.5) !! float tmp = pow(i * overbright / 255.0f, invGamma) * contr * 65535; tmp = tmp + (bright - 1) * 32768 - (contr - 0.5) * 32768 + 16384; int v = appRound(tmp);#endif if (GIsWin2K) { // Win2K/XP performs checking of gamma ramp and may reject it#if !FIND_GAMMA // clamp gamma curve with line 'y=x*GAMMA_ANGLE+GAMMA_OFFSET'#define GAMMA_ANGLE 1#define GAMMA_OFFSET 0.5 int m = i * (GAMMA_ANGLE*256) + (int)(GAMMA_OFFSET*65536); if (v > m) v = m;#define GAMMA_ANGLE2 1#define GAMMA_OFFSET2 -0.5 m = i * (GAMMA_ANGLE2*256) + (int)(GAMMA_OFFSET2*65536); if (v < m) v = m;#else // FIND_GAMMA# if !FIND_GAMMA2 int m = appRound(i * a * 256 + b * 65535); if (v > m) v = m;# else int m = appRound(i * a * 256 + b * 65535); if (v < m) v = m;# endif#endif // FIND_GAMMA } v = bound(v, 0, 65535); newGamma[i] = newGamma[i+256] = newGamma[i+512] = v; } gammaValid = true; UpdateGamma();}
开发者ID:RkShaRkz,项目名称:Quake2,代码行数:65,
示例20: SV_Initvoid SV_Init (void) { SV_AddOperatorCommands (); // serverinfo vars Cvar_Get ("dmflags", "0", CVAR_SERVERINFO); Cvar_Get ("fraglimit", "20", CVAR_SERVERINFO); Cvar_Get ("timelimit", "0", CVAR_SERVERINFO); sv_gametype = Cvar_Get ("g_gametype", "0", CVAR_SERVERINFO | CVAR_LATCH ); Cvar_Get ("sv_keywords", "", CVAR_SERVERINFO); Cvar_Get ("protocol", va("%i", PROTOCOL_VERSION), CVAR_SERVERINFO | CVAR_ROM); sv_mapname = Cvar_Get ("mapname", "nomap", CVAR_SERVERINFO | CVAR_ROM); sv_privateClients = Cvar_Get ("sv_privateClients", "0", CVAR_SERVERINFO); sv_hostname = Cvar_Get ("sv_hostname", "noname", CVAR_SERVERINFO | CVAR_ARCHIVE ); sv_maxclients = Cvar_Get ("sv_maxclients", "8", CVAR_SERVERINFO | CVAR_LATCH); sv_maxRate = Cvar_Get ("sv_maxRate", "0", CVAR_ARCHIVE | CVAR_SERVERINFO ); sv_minPing = Cvar_Get ("sv_minPing", "0", CVAR_ARCHIVE | CVAR_SERVERINFO ); sv_maxPing = Cvar_Get ("sv_maxPing", "0", CVAR_ARCHIVE | CVAR_SERVERINFO ); sv_floodProtect = Cvar_Get ("sv_floodProtect", "1", CVAR_ARCHIVE | CVAR_SERVERINFO ); // systeminfo Cvar_Get ("sv_cheats", "1", CVAR_SYSTEMINFO | CVAR_ROM ); sv_serverid = Cvar_Get ("sv_serverid", "0", CVAR_SYSTEMINFO | CVAR_ROM );#ifndef DLL_ONLY // bk010216 - for DLL-only servers sv_pure = Cvar_Get ("sv_pure", "1", CVAR_SYSTEMINFO );#else sv_pure = Cvar_Get ("sv_pure", "0", CVAR_SYSTEMINFO | CVAR_INIT | CVAR_ROM );#endif Cvar_Get ("sv_paks", "", CVAR_SYSTEMINFO | CVAR_ROM ); Cvar_Get ("sv_pakNames", "", CVAR_SYSTEMINFO | CVAR_ROM ); Cvar_Get ("sv_referencedPaks", "", CVAR_SYSTEMINFO | CVAR_ROM ); Cvar_Get ("sv_referencedPakNames", "", CVAR_SYSTEMINFO | CVAR_ROM ); // server vars sv_rconPassword = Cvar_Get ("rconPassword", "", CVAR_TEMP ); sv_privatePassword = Cvar_Get ("sv_privatePassword", "", CVAR_TEMP ); sv_fps = Cvar_Get ("sv_fps", "20", CVAR_TEMP ); sv_timeout = Cvar_Get ("sv_timeout", "200", CVAR_TEMP ); sv_zombietime = Cvar_Get ("sv_zombietime", "2", CVAR_TEMP ); Cvar_Get ("nextmap", "", CVAR_TEMP ); sv_allowDownload = Cvar_Get ("sv_allowDownload", "0", CVAR_SERVERINFO); sv_master[0] = Cvar_Get ("sv_master1", MASTER_SERVER_NAME, 0 ); sv_master[1] = Cvar_Get ("sv_master2", "", CVAR_ARCHIVE ); sv_master[2] = Cvar_Get ("sv_master3", "", CVAR_ARCHIVE ); sv_master[3] = Cvar_Get ("sv_master4", "", CVAR_ARCHIVE ); sv_master[4] = Cvar_Get ("sv_master5", "", CVAR_ARCHIVE ); sv_reconnectlimit = Cvar_Get ("sv_reconnectlimit", "3", 0); sv_showloss = Cvar_Get ("sv_showloss", "0", 0); sv_padPackets = Cvar_Get ("sv_padPackets", "0", 0); sv_killserver = Cvar_Get ("sv_killserver", "0", 0); sv_mapChecksum = Cvar_Get ("sv_mapChecksum", "", CVAR_ROM); sv_lanForceRate = Cvar_Get ("sv_lanForceRate", "1", CVAR_ARCHIVE ); sv_strictAuth = Cvar_Get ("sv_strictAuth", "1", CVAR_ARCHIVE ); // initialize bot cvars so they are listed and can be set before loading the botlib SV_BotInitCvars(); // init the botlib here because we need the pre-compiler in the UI SV_BotInitBotLib();}
开发者ID:AHPlankton,项目名称:Quake-III-Arena,代码行数:61,
示例21: IN_Init/*===========IN_Init===========*/void IN_Init (void){ // mouse variables m_filter = Cvar_Get ("m_filter", "0", 0); in_mouse = Cvar_Get ("in_mouse", "1", CVAR_ARCHIVE); // joystick variables in_joystick = Cvar_Get ("in_joystick", "0", CVAR_ARCHIVE); joy_name = Cvar_Get ("joy_name", "joystick", 0); joy_advanced = Cvar_Get ("joy_advanced", "0", 0); joy_advaxisx = Cvar_Get ("joy_advaxisx", "0", 0); joy_advaxisy = Cvar_Get ("joy_advaxisy", "0", 0); joy_advaxisz = Cvar_Get ("joy_advaxisz", "0", 0); joy_advaxisr = Cvar_Get ("joy_advaxisr", "0", 0); joy_advaxisu = Cvar_Get ("joy_advaxisu", "0", 0); joy_advaxisv = Cvar_Get ("joy_advaxisv", "0", 0); joy_forwardthreshold = Cvar_Get ("joy_forwardthreshold", "0.15", 0); joy_sidethreshold = Cvar_Get ("joy_sidethreshold", "0.15", 0); joy_upthreshold = Cvar_Get ("joy_upthreshold", "0.15", 0); joy_pitchthreshold = Cvar_Get ("joy_pitchthreshold", "0.15", 0); joy_yawthreshold = Cvar_Get ("joy_yawthreshold", "0.15", 0); joy_forwardsensitivity = Cvar_Get ("joy_forwardsensitivity", "-1", 0); joy_sidesensitivity = Cvar_Get ("joy_sidesensitivity", "-1", 0); joy_upsensitivity = Cvar_Get ("joy_upsensitivity", "-1", 0); joy_pitchsensitivity = Cvar_Get ("joy_pitchsensitivity", "1", 0); joy_yawsensitivity = Cvar_Get ("joy_yawsensitivity", "-1", 0); // centering v_centermove = Cvar_Get ("v_centermove", "0.15", 0); v_centerspeed = Cvar_Get ("v_centerspeed", "500", 0); Cmd_AddCommand ("+mlook", IN_MLookDown); Cmd_AddCommand ("-mlook", IN_MLookUp); Cmd_AddCommand ("joy_advancedupdate", Joy_AdvancedUpdate_f); IN_StartupMouse (); IN_StartupJoystick ();}
开发者ID:kytulendu,项目名称:Quake-2,代码行数:44,
示例22: CM_TracePointThroughPatchCollide/** * @brief Special case for point traces because the patch collide "brushes" have no volume * @param[in,out] tw * @param[in] pc */void CM_TracePointThroughPatchCollide(traceWork_t *tw, const struct patchCollide_s *pc){ qboolean frontFacing[MAX_PATCH_PLANES]; float intersection[MAX_PATCH_PLANES]; float intersect; const patchPlane_t *planes; const facet_t *facet; unsigned int i; int j, k; float offset; float d1, d2; static cvar_t *cv; if (!cm_playerCurveClip->integer && !tw->isPoint) { return; // FIXME: until I get player sized clipping working right } // determine the trace's relationship to all planes planes = pc->planes; for (i = 0 ; i < pc->numPlanes ; i++, planes++) { offset = DotProduct(tw->offsets[planes->signbits], planes->plane); d1 = DotProduct(tw->start, planes->plane) - planes->plane[3] + offset; d2 = DotProduct(tw->end, planes->plane) - planes->plane[3] + offset; if (d1 <= 0) { frontFacing[i] = qfalse; } else { frontFacing[i] = qtrue; } if (d1 == d2) { intersection[i] = 99999; } else { intersection[i] = d1 / (d1 - d2); if (intersection[i] <= 0) { intersection[i] = 99999; } } } // see if any of the surface planes are intersected facet = pc->facets; for (i = 0 ; i < pc->numFacets ; i++, facet++) { if (!frontFacing[facet->surfacePlane]) { continue; } intersect = intersection[facet->surfacePlane]; if (intersect < 0) { continue; // surface is behind the starting point } if (intersect > tw->trace.fraction) { continue; // already hit something closer } for (j = 0 ; j < facet->numBorders ; j++) { k = facet->borderPlanes[j]; if (frontFacing[k] ^ facet->borderInward[j]) { if (intersection[k] > intersect) { break; } } else { if (intersection[k] < intersect) { break; } } } if (j == facet->numBorders) { // we hit this facet if (!cv) { cv = Cvar_Get("r_debugSurfaceUpdate", "1", 0); } if (cv->integer) { debugPatchCollide = pc; debugFacet = facet; } planes = &pc->planes[facet->surfacePlane];//.........这里部分代码省略.........
开发者ID:etlegacy,项目名称:etlegacy,代码行数:101,
示例23: IN_StartupJoystick/*===============IN_StartupJoystick===============*/void IN_StartupJoystick (void){ int numdevs; JOYCAPS jc; MMRESULT mmr; cvar_t *cv; // assume no joystick joy_avail = false; // abort startup if user requests no joystick cv = Cvar_Get ("in_initjoy", "1", CVAR_NOSET); if ( !cv->value ) return; // verify joystick driver is present if ((numdevs = joyGetNumDevs ()) == 0) {// Com_Printf ("/njoystick not found -- driver not present/n/n"); return; } // cycle through the joystick ids for the first valid one for (joy_id=0 ; joy_id<numdevs ; joy_id++) { memset (&ji, 0, sizeof(ji)); ji.dwSize = sizeof(ji); ji.dwFlags = JOY_RETURNCENTERED; if ((mmr = joyGetPosEx (joy_id, &ji)) == JOYERR_NOERROR) break; } // abort startup if we didn't find a valid joystick if (mmr != JOYERR_NOERROR) { Com_Printf ("/njoystick not found -- no valid joysticks (%x)/n/n", mmr); return; } // get the capabilities of the selected joystick // abort startup if command fails memset (&jc, 0, sizeof(jc)); if ((mmr = joyGetDevCaps (joy_id, &jc, sizeof(jc))) != JOYERR_NOERROR) { Com_Printf ("/njoystick not found -- invalid joystick capabilities (%x)/n/n", mmr); return; } // save the joystick's number of buttons and POV status joy_numbuttons = jc.wNumButtons; joy_haspov = jc.wCaps & JOYCAPS_HASPOV; // old button and POV states default to no buttons pressed joy_oldbuttonstate = joy_oldpovstate = 0; // mark the joystick as available and advanced initialization not completed // this is needed as cvars are not available during initialization joy_avail = true; joy_advancedinit = false; Com_Printf ("/njoystick detected/n/n");}
开发者ID:kytulendu,项目名称:Quake-2,代码行数:69,
示例24: CM_DrawDebugSurface/** * @brief Called from the renderer */void CM_DrawDebugSurface(void (*drawPoly)(int color, int numPoints, float *points)){ static cvar_t *cv; static cvar_t *cv2; const patchCollide_t *pc; facet_t *facet; winding_t *w; unsigned int i; int j, k, n; int curplanenum, planenum, curinward, inward; float plane[4]; vec3_t mins = { -15, -15, -28 }, maxs = { 15, 15, 28 }; vec3_t v1, v2; if (!cv2) { cv2 = Cvar_Get("r_debugSurface", "0", 0); } if (cv2->integer != 1) { // TODO: remove in sv_bot.c //BotDrawDebugPolygons(drawPoly, cv2->integer); return; } if (!debugPatchCollide) { return; } if (!cv) { cv = Cvar_Get("cm_debugSize", "2", 0); } pc = debugPatchCollide; for (i = 0, facet = pc->facets ; i < pc->numFacets ; i++, facet++) { for (k = 0 ; k < facet->numBorders + 1; k++) { if (k < facet->numBorders) { planenum = facet->borderPlanes[k]; inward = facet->borderInward[k]; } else { planenum = facet->surfacePlane; inward = qfalse; //continue; } Vector4Copy(pc->planes[planenum].plane, plane); // planenum = facet->surfacePlane; if (inward) { VectorSubtract(vec3_origin, plane, plane); plane[3] = -plane[3]; } plane[3] += cv->value; //* for (n = 0; n < 3; n++) { if (plane[n] > 0) { v1[n] = maxs[n]; } else { v1[n] = mins[n]; } } //end for VectorNegate(plane, v2); plane[3] += Q_fabs(DotProduct(v1, v2)); //*/ w = BaseWindingForPlane(plane, plane[3]); for (j = 0 ; j < facet->numBorders + 1 && w; j++) { if (j < facet->numBorders) { curplanenum = facet->borderPlanes[j]; curinward = facet->borderInward[j]; } else { curplanenum = facet->surfacePlane; curinward = qfalse; //continue; } if (curplanenum == planenum) { continue;//.........这里部分代码省略.........
开发者ID:etlegacy,项目名称:etlegacy,代码行数:101,
示例25: CL_UISystemCalls/*====================CL_UISystemCallsThe ui module is making a system call====================*/int CL_UISystemCalls( int *args ) { switch( args[0] ) { case UI_ERROR: Com_Error( ERR_DROP, "%s", VMA(1) ); return 0; case UI_PRINT: Com_Printf( "%s", VMA(1) ); return 0; case UI_MILLISECONDS: return Sys_Milliseconds(); case UI_CVAR_REGISTER: Cvar_Register( VMA(1), VMA(2), VMA(3), args[4] ); return 0; case UI_CVAR_UPDATE: Cvar_Update( VMA(1) ); return 0; case UI_CVAR_SET: Cvar_Set( VMA(1), VMA(2) ); return 0; case UI_CVAR_VARIABLEVALUE: return FloatAsInt( Cvar_VariableValue( VMA(1) ) ); case UI_CVAR_VARIABLESTRINGBUFFER: Cvar_VariableStringBuffer( VMA(1), VMA(2), args[3] ); return 0; case UI_CVAR_SETVALUE: Cvar_SetValue( VMA(1), VMF(2) ); return 0; case UI_CVAR_RESET: Cvar_Reset( VMA(1) ); return 0; case UI_CVAR_CREATE: Cvar_Get( VMA(1), VMA(2), args[3] ); return 0; case UI_CVAR_INFOSTRINGBUFFER: Cvar_InfoStringBuffer( args[1], VMA(2), args[3] ); return 0; case UI_ARGC: return Cmd_Argc(); case UI_ARGV: Cmd_ArgvBuffer( args[1], VMA(2), args[3] ); return 0; case UI_CMD_EXECUTETEXT: Cbuf_ExecuteText( args[1], VMA(2) ); return 0; case UI_FS_FOPENFILE: return FS_FOpenFileByMode( VMA(1), VMA(2), args[3] ); case UI_FS_READ: FS_Read2( VMA(1), args[2], args[3] ); return 0; case UI_FS_WRITE: FS_Write( VMA(1), args[2], args[3] ); return 0; case UI_FS_FCLOSEFILE: FS_FCloseFile( args[1] ); return 0; case UI_FS_GETFILELIST: return FS_GetFileList( VMA(1), VMA(2), VMA(3), args[4] ); case UI_FS_SEEK: return FS_Seek( args[1], args[2], args[3] ); case UI_R_REGISTERMODEL: return re.RegisterModel( VMA(1) ); case UI_R_REGISTERSKIN: return re.RegisterSkin( VMA(1) ); case UI_R_REGISTERSHADERNOMIP: return re.RegisterShaderNoMip( VMA(1) ); case UI_R_CLEARSCENE: re.ClearScene(); return 0;//.........这里部分代码省略.........
开发者ID:LoudHoward,项目名称:Quake3,代码行数:101,
示例26: NET_Socket/* * ==================== NET_Socket ==================== */intNET_Socket(char *net_interface, int port, netsrc_t type, int family){ char Buf[BUFSIZ], *Host, *Service; int newsocket , Error; struct sockaddr_storage ss; struct addrinfo hints, *res, *ai; qboolean _true = true; int i = 1;#ifdef IPV6_BINDV6ONLY int dummy;#endif struct ipv6_mreq mreq; cvar_t *mcast; memset(&hints, 0, sizeof(hints)); hints.ai_family = family; hints.ai_socktype = SOCK_DGRAM; hints.ai_protocol = IPPROTO_UDP; hints.ai_flags = AI_PASSIVE; if (!net_interface || !net_interface[0] || !stricmp(net_interface, "localhost")) Host = (family == AF_INET6) ? "::" : "0.0.0.0"; else Host = net_interface; if (port == PORT_ANY) Service = NULL; else { Com_sprintf(Buf, sizeof(Buf), "%5d", port); Service = Buf; } if ((Error = getaddrinfo(Host, Service, &hints, &res))) { /* * Com_Printf("NET_Socket: getaddrinfo: %s/n", gai_strerror * (Error)); */ return 0; } for (ai = res; ai != NULL; ai = ai->ai_next) { if ((newsocket = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol)) == -1) { Com_Printf("NET_Socket: socket: %s/n", strerror(errno)); continue; } /* make it non-blocking */ if (ioctl(newsocket, FIONBIO, (char *)&_true) == -1) { Com_Printf("NET_Socket: ioctl FIONBIO: %s/n", strerror(errno)); continue; }#ifdef IPV6_BINDV6ONLY if (family == AF_INET6) if (setsockopt(newsocket, IPPROTO_IPV6, IPV6_BINDV6ONLY, &dummy, sizeof(dummy)) < 0) { Com_Printf("NET_Socket: setsockopt IPV6_BINDV6ONLY: %s/n", strerror(errno)); }#endif if (family == AF_INET) { /* make it broadcast capable */ if (setsockopt(newsocket, SOL_SOCKET, SO_BROADCAST, (char *)&i, sizeof(i)) == -1) { Com_Printf("ERROR: NET_Socket: setsockopt SO_BROADCAST:%s/n", NET_ErrorString()); return 0; } } if (bind(newsocket, ai->ai_addr, ai->ai_addrlen) < 0) { Com_Printf("NET_Socket: bind: %s/n", strerror(errno)); } else { memcpy(&ss, ai->ai_addr, ai->ai_addrlen); break; } } if (res != NULL) freeaddrinfo(res); if (ai == NULL) return 0; switch (ss.ss_family) { case AF_INET: break; case AF_INET6: /* * Multicast outgoing interface is specified for client and * server (+set multicast <ifname>) */ mcast = Cvar_Get("multicast", "NULL", CVAR_NOSET); multicast_interface = (strcmp(mcast->string, "NULL") ? mcast->string : NULL); if (multicast_interface != NULL) {//.........这里部分代码省略.........
开发者ID:ZwS,项目名称:qudos,代码行数:101,
注:本文中的Cvar_Get函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ Cvar_InfoString函数代码示例 C++ Cvar_FullSet函数代码示例 |