1#define IMGUI_DEFINE_MATH_OPERATORS
9#include "imgui/backends/imgui_impl_sdl2.h"
10#include "imgui/backends/imgui_impl_sdlrenderer2.h"
11#include "imgui/imgui.h"
13#ifdef YAZE_ENABLE_IMGUI_TEST_ENGINE
14#include "imgui_test_engine/imgui_te_context.h"
15#include "imgui_test_engine/imgui_te_engine.h"
16#include "imgui_test_engine/imgui_te_imconfig.h"
17#include "imgui_test_engine/imgui_te_ui.h"
24#ifdef YAZE_ENABLE_IMGUI_TEST_ENGINE
25 : engine_(
nullptr), show_demo_window_(
true)
32#ifdef YAZE_ENABLE_IMGUI_TEST_ENGINE
34 ImGuiTestEngine_Stop(engine_);
35 ImGuiTestEngine_DestroyContext(engine_);
46 ImGui::CreateContext();
48#ifdef YAZE_ENABLE_IMGUI_TEST_ENGINE
50 engine_ = ImGuiTestEngine_CreateContext();
51 ImGuiTestEngineIO& test_io = ImGuiTestEngine_GetIO(engine_);
52 test_io.ConfigVerboseLevel = ImGuiTestVerboseLevel_Info;
53 test_io.ConfigVerboseLevelOnError = ImGuiTestVerboseLevel_Debug;
56 ImGuiIO& io = ImGui::GetIO();
57 io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;
60 SDL_Renderer* sdl_renderer =
static_cast<SDL_Renderer*
>(
test_renderer_->GetBackendRenderer());
62 ImGui_ImplSDLRenderer2_Init(sdl_renderer);
64#ifdef YAZE_ENABLE_IMGUI_TEST_ENGINE
67 ImGuiTestEngine_Start(engine_, ImGui::GetCurrentContext());
74 return absl::OkStatus();
84 ImGui_ImplSDLRenderer2_NewFrame();
85 ImGui_ImplSDL2_NewFrame();
102#ifdef YAZE_ENABLE_IMGUI_TEST_ENGINE
104 ImGuiTestEngine_ShowTestEngineWindows(engine_, &show_demo_window_);
107 return absl::OkStatus();
114 return test_rom_->LoadFromFile(filename);
119 return absl::FailedPreconditionError(
"No test ROM loaded");
130 return absl::InternalError(
"Editor is null");
133 return absl::OkStatus();
138 return absl::InternalError(
"Editor is null");
140 return editor->
Load();
145 return absl::InternalError(
"Editor is null");
147 return editor->
Save();
152 return absl::InternalError(
"Editor is null");
159 return absl::InternalError(
"Editor is null");
161 return editor->
Cut();
166 return absl::InternalError(
"Editor is null");
168 return editor->
Copy();
173 return absl::InternalError(
"Editor is null");
175 return editor->
Paste();
180 return absl::InternalError(
"Editor is null");
182 return editor->
Undo();
187 return absl::InternalError(
"Editor is null");
189 return editor->
Redo();
194 return absl::InternalError(
"Editor is null");
196 return editor->
Find();
201 return absl::InternalError(
"Editor is null");
203 return editor->
Clear();
auto window() -> SDL_Window *
void set_active(bool active)
Interface for editor classes.
virtual absl::Status Cut()=0
virtual absl::Status Copy()=0
virtual absl::Status Redo()=0
virtual void Initialize()=0
virtual absl::Status Clear()
virtual absl::Status Save()=0
virtual absl::Status Find()=0
virtual absl::Status Paste()=0
virtual absl::Status Load()=0
virtual absl::Status Update()=0
virtual absl::Status Undo()=0
absl::Status Initialize()
virtual absl::Status Update()
absl::Status TestEditorClear(editor::Editor *editor)
absl::Status TestEditorInitialize(editor::Editor *editor)
std::unique_ptr< Rom > test_rom_
absl::Status SaveTestRom(const std::string &filename)
core::Controller controller_
absl::Status TestEditorUpdate(editor::Editor *editor)
virtual void RegisterTests(void *engine)
absl::Status TestEditorSave(editor::Editor *editor)
absl::Status TestEditorLoad(editor::Editor *editor)
absl::Status TestEditorCut(editor::Editor *editor)
absl::Status TestEditorFind(editor::Editor *editor)
absl::Status TestEditorUndo(editor::Editor *editor)
absl::Status TestEditorPaste(editor::Editor *editor)
absl::Status TestEditorCopy(editor::Editor *editor)
absl::Status LoadTestRom(const std::string &filename)
std::unique_ptr< gfx::SDL2Renderer > test_renderer_
absl::Status TestEditorRedo(editor::Editor *editor)
#define RETURN_IF_ERROR(expression)
absl::Status CreateWindow(Window &window, gfx::IRenderer *renderer, int flags)
Main namespace for the application.