Frontend: Prevent drawing imgui into the vram texture
This commit is contained in:
parent
4fa79f1503
commit
004c22f031
|
@ -139,9 +139,9 @@ void GPU::ResetGraphicsAPIState() {}
|
||||||
|
|
||||||
void GPU::RestoreGraphicsAPIState() {}
|
void GPU::RestoreGraphicsAPIState() {}
|
||||||
|
|
||||||
void GPU::RenderStatistics() {}
|
void GPU::DrawStatistics() {}
|
||||||
|
|
||||||
void GPU::RenderDebugMenu()
|
void GPU::DrawDebugMenu()
|
||||||
{
|
{
|
||||||
ImGui::MenuItem("Show VRAM", nullptr, &m_debug_options.show_vram);
|
ImGui::MenuItem("Show VRAM", nullptr, &m_debug_options.show_vram);
|
||||||
ImGui::MenuItem("Dump CPU to VRAM Copies", nullptr, &m_debug_options.dump_cpu_to_vram_copies);
|
ImGui::MenuItem("Dump CPU to VRAM Copies", nullptr, &m_debug_options.dump_cpu_to_vram_copies);
|
||||||
|
|
|
@ -40,10 +40,10 @@ public:
|
||||||
virtual void RestoreGraphicsAPIState();
|
virtual void RestoreGraphicsAPIState();
|
||||||
|
|
||||||
// Render statistics debug window.
|
// Render statistics debug window.
|
||||||
virtual void RenderStatistics();
|
virtual void DrawStatistics();
|
||||||
|
|
||||||
// Manipulating debug options.
|
// Manipulating debug options.
|
||||||
virtual void RenderDebugMenu();
|
virtual void DrawDebugMenu();
|
||||||
|
|
||||||
// Called when settings change.
|
// Called when settings change.
|
||||||
virtual void UpdateSettings();
|
virtual void UpdateSettings();
|
||||||
|
|
|
@ -68,9 +68,9 @@ void GPU_HW_OpenGL::RestoreGraphicsAPIState()
|
||||||
glBindVertexArray(m_vao_id);
|
glBindVertexArray(m_vao_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GPU_HW_OpenGL::RenderStatistics()
|
void GPU_HW_OpenGL::DrawStatistics()
|
||||||
{
|
{
|
||||||
GPU_HW::RenderStatistics();
|
GPU_HW::DrawStatistics();
|
||||||
|
|
||||||
ImGui::SetNextWindowSize(ImVec2(300.0f, 130.0f), ImGuiCond_Once);
|
ImGui::SetNextWindowSize(ImVec2(300.0f, 130.0f), ImGuiCond_Once);
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ public:
|
||||||
void ResetGraphicsAPIState() override;
|
void ResetGraphicsAPIState() override;
|
||||||
void RestoreGraphicsAPIState() override;
|
void RestoreGraphicsAPIState() override;
|
||||||
|
|
||||||
void RenderStatistics() override;
|
void DrawStatistics() override;
|
||||||
void UpdateSettings() override;
|
void UpdateSettings() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -388,6 +388,8 @@ bool SDLInterface::PassEventToImGui(const SDL_Event* event)
|
||||||
|
|
||||||
void SDLInterface::Render()
|
void SDLInterface::Render()
|
||||||
{
|
{
|
||||||
|
DrawImGui();
|
||||||
|
|
||||||
m_system->GetGPU()->ResetGraphicsAPIState();
|
m_system->GetGPU()->ResetGraphicsAPIState();
|
||||||
|
|
||||||
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
||||||
|
@ -396,8 +398,6 @@ void SDLInterface::Render()
|
||||||
|
|
||||||
RenderDisplay();
|
RenderDisplay();
|
||||||
|
|
||||||
RenderImGui();
|
|
||||||
|
|
||||||
ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
|
ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
|
||||||
|
|
||||||
SDL_GL_SwapWindow(m_window);
|
SDL_GL_SwapWindow(m_window);
|
||||||
|
@ -459,19 +459,19 @@ void SDLInterface::RenderDisplay()
|
||||||
glDrawArrays(GL_TRIANGLES, 0, 3);
|
glDrawArrays(GL_TRIANGLES, 0, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SDLInterface::RenderImGui()
|
void SDLInterface::DrawImGui()
|
||||||
{
|
{
|
||||||
RenderMainMenuBar();
|
DrawMainMenuBar();
|
||||||
|
|
||||||
if (m_show_gpu_statistics)
|
if (m_show_gpu_statistics)
|
||||||
m_system->GetGPU()->RenderStatistics();
|
m_system->GetGPU()->DrawStatistics();
|
||||||
|
|
||||||
RenderOSDMessages();
|
DrawOSDMessages();
|
||||||
|
|
||||||
ImGui::Render();
|
ImGui::Render();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SDLInterface::RenderMainMenuBar()
|
void SDLInterface::DrawMainMenuBar()
|
||||||
{
|
{
|
||||||
if (!ImGui::BeginMainMenuBar())
|
if (!ImGui::BeginMainMenuBar())
|
||||||
return;
|
return;
|
||||||
|
@ -555,7 +555,7 @@ void SDLInterface::RenderMainMenuBar()
|
||||||
ImGui::MenuItem("Show Statistics", nullptr, &m_show_gpu_statistics);
|
ImGui::MenuItem("Show Statistics", nullptr, &m_show_gpu_statistics);
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
|
|
||||||
m_system->GetGPU()->RenderDebugMenu();
|
m_system->GetGPU()->DrawDebugMenu();
|
||||||
ImGui::EndMenu();
|
ImGui::EndMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -603,7 +603,7 @@ void SDLInterface::SetDisplayTexture(GL::Texture* texture, u32 offset_x, u32 off
|
||||||
m_display_texture_changed = true;
|
m_display_texture_changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SDLInterface::RenderOSDMessages()
|
void SDLInterface::DrawOSDMessages()
|
||||||
{
|
{
|
||||||
constexpr ImGuiWindowFlags window_flags = ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoInputs |
|
constexpr ImGuiWindowFlags window_flags = ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoInputs |
|
||||||
ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoSavedSettings |
|
ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoSavedSettings |
|
||||||
|
|
|
@ -50,7 +50,7 @@ private:
|
||||||
|
|
||||||
// We only pass mouse input through if it's grabbed
|
// We only pass mouse input through if it's grabbed
|
||||||
bool IsWindowFullscreen() const;
|
bool IsWindowFullscreen() const;
|
||||||
void RenderImGui();
|
void DrawImGui();
|
||||||
void DoLoadState(u32 index);
|
void DoLoadState(u32 index);
|
||||||
void DoSaveState(u32 index);
|
void DoSaveState(u32 index);
|
||||||
|
|
||||||
|
@ -58,8 +58,8 @@ private:
|
||||||
bool PassEventToImGui(const SDL_Event* event);
|
bool PassEventToImGui(const SDL_Event* event);
|
||||||
void Render();
|
void Render();
|
||||||
void RenderDisplay();
|
void RenderDisplay();
|
||||||
void RenderMainMenuBar();
|
void DrawMainMenuBar();
|
||||||
void RenderOSDMessages();
|
void DrawOSDMessages();
|
||||||
|
|
||||||
SDL_Window* m_window = nullptr;
|
SDL_Window* m_window = nullptr;
|
||||||
SDL_GLContext m_gl_context = nullptr;
|
SDL_GLContext m_gl_context = nullptr;
|
||||||
|
|
Loading…
Reference in New Issue