1 // Copyright (c) 2012- PPSSPP Project.
2 
3 // This program is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, version 2.0 or later versions.
6 
7 // This program is distributed in the hope that it will be useful,
8 // but WITHOUT ANY WARRANTY; without even the implied warranty of
9 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10 // GNU General Public License 2.0 for more details.
11 
12 // A copy of the GPL 2.0 should have been included with the program.
13 // If not, see http://www.gnu.org/licenses/
14 
15 // Official git repository and contact information can be found at
16 // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
17 
18 #pragma once
19 
20 #include "Core/MemMap.h"
21 
22 void __DisplayInit();
23 void __DisplayDoState(PointerWrap &p);
24 void __DisplayShutdown();
25 
26 void Register_sceDisplay();
27 
28 // will return true once after every end-of-frame.
29 bool __DisplayFrameDone();
30 
31 // Get information about the current framebuffer.
32 bool __DisplayGetFramebuf(PSPPointer<u8> *topaddr, u32 *linesize, u32 *pixelFormat, int mode);
33 void __DisplaySetFramebuf(u32 topaddr, int linesize, int pixelformat, int sync);
34 
35 typedef void (*VblankCallback)();
36 // Listen for vblank events.  Only register during init.
37 void __DisplayListenVblank(VblankCallback callback);
38 
39 void __DisplayGetDebugStats(char stats[], size_t bufsize);
40 void __DisplayGetFPS(float *out_vps, float *out_fps, float *out_actual_fps);
41 void __DisplayGetVPS(float *out_vps);
42 void __DisplayGetAveragedFPS(float *out_vps, float *out_fps);
43 double *__DisplayGetFrameTimes(int *out_valid, int *out_pos, double **out_sleep);
44 int __DisplayGetNumVblanks();
45 int __DisplayGetVCount();
46 int __DisplayGetFlipCount();
47 
48 // Call this when resuming to avoid a small speedup burst
49 void __DisplaySetWasPaused();
50 
51 void Register_sceDisplay_driver();
52