| 176 | #endif |
| 177 | |
| 178 | void CGraphicsPluginImpl::UpdateScreen() |
| 179 | { |
| 180 | //gVblCount++; |
| 181 | |
| 182 | static u32 last_origin {}; |
| 183 | u32 current_origin = Memory_VI_GetRegister(VI_ORIGIN_REG); |
| 184 | static bool Old_FrameskipActive {false}; |
| 185 | static bool Older_FrameskipActive {false}; |
| 186 | |
| 187 | if( current_origin != last_origin ) |
| 188 | { |
| 189 | //printf( "Flip (%08x, %08x)\n", current_origin, last_origin ); |
| 190 | if( gGlobalPreferences.DisplayFramerate ) |
| 191 | UpdateFramerate(); |
| 192 | |
| 193 | const f32 Fsync = FramerateLimiter_GetSync(); |
| 194 | |
| 195 | //Calc sync rates for audio and game speed //Corn |
| 196 | const f32 inv_Fsync {1.0f / Fsync}; |
| 197 | gSoundSync = {(u32)(44100.0f * inv_Fsync)}; |
| 198 | gVISyncRate = {(u32)(1500.0f * inv_Fsync)}; |
| 199 | if( gVISyncRate > 4000 ) gVISyncRate = 4000; |
| 200 | else if ( gVISyncRate < 1500 ) gVISyncRate = 1500; |
| 201 | |
| 202 | if(!gFrameskipActive) |
| 203 | { |
| 204 | if( gGlobalPreferences.DisplayFramerate ) |
| 205 | { |
| 206 | pspDebugScreenSetTextColor( 0xffffffff ); |
| 207 | pspDebugScreenSetBackColor(0); |
| 208 | pspDebugScreenSetXY(0, 0); |
| 209 | |
| 210 | switch(gGlobalPreferences.DisplayFramerate) |
| 211 | { |
| 212 | case 1: |
| 213 | pspDebugScreenPrintf( "%#.1f ", gCurrentFramerate ); |
| 214 | break; |
| 215 | case 2: |
| 216 | pspDebugScreenPrintf( "FPS[%#.1f] VB[%d/%d] Sync[%#.1f%%] ", gCurrentFramerate, u32( Fsync * f32( FramerateLimiter_GetTvFrequencyHz() ) ), FramerateLimiter_GetTvFrequencyHz(), Fsync * 100.0f ); |
| 217 | break; |
| 218 | case 3: |
| 219 | #ifdef DAEDALUS_DEBUG_DISPLAYLIST |
| 220 | pspDebugScreenPrintf( "Dlist[%d] Cull[%d] | Tris[%d] Cull[%d] | Rect[%d] Clip[%d] ", gNumInstructionsExecuted, gNumDListsCulled, gRenderer->GetNumTrisRendered(), gRenderer->GetNumTrisClipped(), gRenderer->GetNumRect(), gNumRectsClipped); |
| 221 | #else |
| 222 | pspDebugScreenPrintf( "%#.1f ", gCurrentFramerate ); |
| 223 | #endif |
| 224 | break; |
| 225 | } |
| 226 | } |
| 227 | if( gGlobalPreferences.BatteryWarning ) |
| 228 | { |
| 229 | battery_warning(); |
| 230 | } |
| 231 | if(gTakeScreenshot) |
| 232 | { |
| 233 | CGraphicsContext::Get()->DumpNextScreen(); |
| 234 | gTakeScreenshot = false; |
| 235 | } |
nothing calls this directly
no test coverage detected