mirror of
https://github.com/open-goal/jak-project
synced 2026-08-01 00:18:25 -04:00
game: add a renderer filter to the debug menu
This commit is contained in:
@@ -3,6 +3,10 @@
|
||||
#include "fmt/core.h"
|
||||
#include "third-party/imgui/imgui.h"
|
||||
|
||||
std::string BucketRenderer::name() const {
|
||||
return m_name;
|
||||
}
|
||||
|
||||
std::string BucketRenderer::name_and_id() const {
|
||||
return fmt::format("[{:2d}] {}", (int)m_my_id, m_name);
|
||||
}
|
||||
|
||||
@@ -98,6 +98,7 @@ class BucketRenderer {
|
||||
virtual void render(DmaFollower& dma,
|
||||
SharedRenderState* render_state,
|
||||
ScopedProfilerNode& prof) = 0;
|
||||
std::string name() const;
|
||||
std::string name_and_id() const;
|
||||
virtual ~BucketRenderer() = default;
|
||||
bool& enabled() { return m_enabled; }
|
||||
@@ -158,4 +159,4 @@ class PrintRenderer : public BucketRenderer {
|
||||
void render(DmaFollower& dma, SharedRenderState* render_state, ScopedProfilerNode& prof) override;
|
||||
bool empty() const override { return true; }
|
||||
void draw_debug_window() override {}
|
||||
};
|
||||
};
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "game/graphics/pipelines/opengl.h"
|
||||
|
||||
#include "third-party/imgui/imgui.h"
|
||||
#include "third-party/imgui/imgui_stdlib.h"
|
||||
|
||||
// for the vif callback
|
||||
#include "game/kernel/common/kmachine.h"
|
||||
@@ -36,6 +37,7 @@
|
||||
#ifdef _WIN32
|
||||
#include <Windows.h>
|
||||
#endif
|
||||
#include "common/util/string_util.h"
|
||||
|
||||
namespace {
|
||||
std::string g_current_renderer;
|
||||
@@ -1082,8 +1084,13 @@ void OpenGLRenderer::draw_renderer_selection_window() {
|
||||
ImGui::TreePop();
|
||||
}
|
||||
|
||||
ImGui::InputText("Renderer Filter", &m_renderer_filter);
|
||||
|
||||
for (size_t i = 0; i < m_bucket_renderers.size(); i++) {
|
||||
auto renderer = m_bucket_renderers[i].get();
|
||||
if (!m_renderer_filter.empty() && !str_util::contains(renderer->name(), m_renderer_filter)) {
|
||||
continue;
|
||||
}
|
||||
if (renderer && !renderer->empty()) {
|
||||
ImGui::PushID(i);
|
||||
if (ImGui::TreeNode(renderer->name_and_id().c_str())) {
|
||||
|
||||
@@ -123,6 +123,7 @@ class OpenGLRenderer {
|
||||
|
||||
float m_last_pmode_alp = 1.;
|
||||
bool m_enable_fast_blackout_loads = true;
|
||||
std::string m_renderer_filter = "";
|
||||
|
||||
struct FboState {
|
||||
struct {
|
||||
|
||||
Reference in New Issue
Block a user