// // I_Init // void I_Init (void) { I_GetTime = I_GetTimePolled; I_WaitForTic = I_WaitForTicPolled; I_InitSound (); I_InitHardware (); I_InitInput (); }
void I_RestartRenderer() { FFont *font; font = screen->Font; I_ShutdownHardware(); I_InitHardware(); V_DoModeSetup(NewWidth, NewHeight, 8); screen->SetFont(font); if (( OPENGL_GetCurrentRenderer( ) == RENDERER_OPENGL ) && gamestate == GS_LEVEL) { if ( UsingGLNodes == false ) P_LoadGLNodes( Wads.GetNumForName( level.mapname )); GL_GenerateLevelGeometry(); } if ( OPENGL_GetCurrentRenderer( ) == RENDERER_SOFTWARE ) { C_GetConback(NewWidth, NewHeight); } }
// // I_Init // void I_Init (void) { I_InitSound (); I_InitHardware (); }
// // I_Init // void I_Init (void) { #ifndef USEASM memset (&CPU, 0, sizeof(CPU)); #else CheckMMX (&CPU); CalculateCPUSpeed (); // Why does Intel right-justify this string? char *f = CPU.CPUString, *t = f; while (*f == ' ') { ++f; } if (f != t) { while (*f != 0) { *t++ = *f++; } } #endif if (CPU.VendorID[0]) { Printf ("CPU Vendor ID: %s\n", CPU.VendorID); if (CPU.CPUString[0]) { Printf (" Name: %s\n", CPU.CPUString); } if (CPU.bIsAMD) { Printf (" Family %d (%d), Model %d, Stepping %d\n", CPU.Family, CPU.AMDFamily, CPU.AMDModel, CPU.AMDStepping); } else { Printf (" Family %d, Model %d, Stepping %d\n", CPU.Family, CPU.Model, CPU.Stepping); } Printf (" Features:"); if (CPU.bMMX) Printf (" MMX"); if (CPU.bMMXPlus) Printf (" MMX+"); if (CPU.bSSE) Printf (" SSE"); if (CPU.bSSE2) Printf (" SSE2"); if (CPU.bSSE3) Printf (" SSE3"); if (CPU.b3DNow) Printf (" 3DNow!"); if (CPU.b3DNowPlus) Printf (" 3DNow!+"); Printf ("\n"); } // Use a timer event if possible NewTicArrived = CreateEvent (NULL, FALSE, FALSE, NULL); if (NewTicArrived) { UINT delay; char *cmdDelay; cmdDelay = Args.CheckValue ("-timerdelay"); delay = 0; if (cmdDelay != 0) { delay = atoi (cmdDelay); } if (delay == 0) { delay = 1000/TICRATE; } TimerEventID = timeSetEvent ( delay, 0, TimerTicked, 0, TIME_PERIODIC ); MillisecondsPerTic = delay; } if (TimerEventID != 0) { I_GetTime = I_GetTimeEventDriven; I_WaitForTic = I_WaitForTicEvent; } else { // If no timer event, busy-loop with timeGetTime I_GetTime = I_GetTimePolled; I_WaitForTic = I_WaitForTicPolled; } atterm (I_ShutdownSound); I_InitSound (); I_InitInput (Window); I_InitHardware (); }