MCPcopy Create free account
hub / github.com/DaedalusX64/daedalus / UpdateScreen

Method UpdateScreen

Source/SysPSP/HLEGraphics/GraphicsPluginPSP.cpp:178–268  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

176#endif
177
178void 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 }

Callers

nothing calls this directly

Calls 10

FramerateLimiter_GetSyncFunction · 0.85
battery_warningFunction · 0.85
HandleEndOfFrameFunction · 0.85
GetNumTrisRenderedMethod · 0.80
GetNumTrisClippedMethod · 0.80
GetNumRectMethod · 0.80
UpdateFramerateFunction · 0.70
DumpNextScreenMethod · 0.45
UpdateFrameMethod · 0.45

Tested by

no test coverage detected