@ -92,23 +92,23 @@ static std::array<GLfloat, 3 * 2> MakeOrthographicMatrix(const float width, cons
return matrix ;
}
ScopeAcquireGLContext : : ScopeAcquireGLContext ( ) {
ScopeAcquireGLContext : : ScopeAcquireGLContext ( EmuWindow & emu_window_ ) : emu_window { emu_window_ } {
if ( Settings : : values . use_multi_core ) {
VideoCore: : g_emu_window - > MakeCurrent ( ) ;
emu_window. MakeCurrent ( ) ;
}
}
ScopeAcquireGLContext : : ~ ScopeAcquireGLContext ( ) {
if ( Settings : : values . use_multi_core ) {
VideoCore: : g_emu_window - > DoneCurrent ( ) ;
emu_window. DoneCurrent ( ) ;
}
}
RendererOpenGL : : RendererOpenGL ( ) = default ;
RendererOpenGL : : RendererOpenGL ( EmuWindow & window ) : RendererBase { window } { }
RendererOpenGL : : ~ RendererOpenGL ( ) = default ;
/// Swap buffers (render frame)
void RendererOpenGL : : SwapBuffers ( boost : : optional < const Tegra : : FramebufferConfig & > framebuffer ) {
ScopeAcquireGLContext acquire_context ;
ScopeAcquireGLContext acquire_context {render_window } ;
Core : : System : : GetInstance ( ) . perf_stats . EndSystemFrame ( ) ;
@ -130,10 +130,10 @@ void RendererOpenGL::SwapBuffers(boost::optional<const Tegra::FramebufferConfig&
// Load the framebuffer from memory, draw it to the screen, and swap buffers
LoadFBToScreenInfo ( * framebuffer , screen_info ) ;
DrawScreen ( ) ;
render_window - > SwapBuffers ( ) ;
render_window . SwapBuffers ( ) ;
}
render_window - > PollEvents ( ) ;
render_window . PollEvents ( ) ;
Core : : System : : GetInstance ( ) . frame_limiter . DoFrameLimiting ( CoreTiming : : GetGlobalTimeUs ( ) ) ;
Core : : System : : GetInstance ( ) . perf_stats . BeginSystemFrame ( ) ;
@ -356,7 +356,7 @@ void RendererOpenGL::DrawScreenTriangles(const ScreenInfo& screen_info, float x,
* Draws the emulated screens to the emulator window .
*/
void RendererOpenGL : : DrawScreen ( ) {
const auto & layout = render_window - > GetFramebufferLayout ( ) ;
const auto & layout = render_window . GetFramebufferLayout ( ) ;
const auto & screen = layout . screen ;
glViewport ( 0 , 0 , layout . width , layout . height ) ;
@ -380,14 +380,6 @@ void RendererOpenGL::DrawScreen() {
/// Updates the framerate
void RendererOpenGL : : UpdateFramerate ( ) { }
/**
* Set the emulator window to use for renderer
* @ param window EmuWindow handle to emulator window to use for rendering
*/
void RendererOpenGL : : SetWindow ( EmuWindow * window ) {
render_window = window ;
}
static const char * GetSource ( GLenum source ) {
# define RET(s) \
case GL_DEBUG_SOURCE_ # # s : \
@ -445,7 +437,7 @@ static void APIENTRY DebugHandler(GLenum source, GLenum type, GLuint id, GLenum
/// Initialize the renderer
bool RendererOpenGL : : Init ( ) {
ScopeAcquireGLContext acquire_context ;
ScopeAcquireGLContext acquire_context {render_window } ;
if ( GLAD_GL_KHR_debug ) {
glEnable ( GL_DEBUG_OUTPUT ) ;