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