Refactor Controller: Replace SetupScreen with Initialize and clean up unused code
This commit is contained in:
@@ -18,37 +18,6 @@
|
|||||||
namespace yaze {
|
namespace yaze {
|
||||||
namespace core {
|
namespace core {
|
||||||
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
constexpr ImGuiWindowFlags kMainEditorFlags =
|
|
||||||
ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoCollapse |
|
|
||||||
ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_MenuBar |
|
|
||||||
ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_NoTitleBar;
|
|
||||||
|
|
||||||
using ImGui::Begin;
|
|
||||||
using ImGui::End;
|
|
||||||
using ImGui::GetIO;
|
|
||||||
using ImGui::NewFrame;
|
|
||||||
using ImGui::SetNextWindowPos;
|
|
||||||
using ImGui::SetNextWindowSize;
|
|
||||||
|
|
||||||
void NewMasterFrame() {
|
|
||||||
const ImGuiIO &io = GetIO();
|
|
||||||
ImGui_ImplSDLRenderer2_NewFrame();
|
|
||||||
ImGui_ImplSDL2_NewFrame();
|
|
||||||
NewFrame();
|
|
||||||
SetNextWindowPos(gui::kZeroPos);
|
|
||||||
ImVec2 dimensions(io.DisplaySize.x, io.DisplaySize.y);
|
|
||||||
SetNextWindowSize(dimensions, ImGuiCond_Always);
|
|
||||||
|
|
||||||
if (!Begin("##YazeMain", nullptr, kMainEditorFlags)) {
|
|
||||||
End();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
absl::Status Controller::OnEntry(std::string filename) {
|
absl::Status Controller::OnEntry(std::string filename) {
|
||||||
#if defined(__APPLE__) && defined(__MACH__)
|
#if defined(__APPLE__) && defined(__MACH__)
|
||||||
#if TARGET_IPHONE_SIMULATOR == 1 || TARGET_OS_IPHONE == 1
|
#if TARGET_IPHONE_SIMULATOR == 1 || TARGET_OS_IPHONE == 1
|
||||||
@@ -67,7 +36,7 @@ absl::Status Controller::OnEntry(std::string filename) {
|
|||||||
RETURN_IF_ERROR(CreateRenderer())
|
RETURN_IF_ERROR(CreateRenderer())
|
||||||
RETURN_IF_ERROR(CreateGuiContext())
|
RETURN_IF_ERROR(CreateGuiContext())
|
||||||
RETURN_IF_ERROR(LoadAudioDevice())
|
RETURN_IF_ERROR(LoadAudioDevice())
|
||||||
editor_manager_.SetupScreen(filename);
|
editor_manager_.Initialize(filename);
|
||||||
active_ = true;
|
active_ = true;
|
||||||
return absl::OkStatus();
|
return absl::OkStatus();
|
||||||
}
|
}
|
||||||
@@ -80,30 +49,30 @@ void Controller::OnInput() {
|
|||||||
while (SDL_PollEvent(&event)) {
|
while (SDL_PollEvent(&event)) {
|
||||||
ImGui_ImplSDL2_ProcessEvent(&event);
|
ImGui_ImplSDL2_ProcessEvent(&event);
|
||||||
switch (event.type) {
|
switch (event.type) {
|
||||||
case SDL_KEYDOWN:
|
case SDL_KEYDOWN:
|
||||||
case SDL_KEYUP: {
|
case SDL_KEYUP: {
|
||||||
ImGuiIO &io = ImGui::GetIO();
|
ImGuiIO &io = ImGui::GetIO();
|
||||||
io.KeyShift = ((SDL_GetModState() & KMOD_SHIFT) != 0);
|
io.KeyShift = ((SDL_GetModState() & KMOD_SHIFT) != 0);
|
||||||
io.KeyCtrl = ((SDL_GetModState() & KMOD_CTRL) != 0);
|
io.KeyCtrl = ((SDL_GetModState() & KMOD_CTRL) != 0);
|
||||||
io.KeyAlt = ((SDL_GetModState() & KMOD_ALT) != 0);
|
io.KeyAlt = ((SDL_GetModState() & KMOD_ALT) != 0);
|
||||||
io.KeySuper = ((SDL_GetModState() & KMOD_GUI) != 0);
|
io.KeySuper = ((SDL_GetModState() & KMOD_GUI) != 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SDL_WINDOWEVENT:
|
||||||
|
switch (event.window.event) {
|
||||||
|
case SDL_WINDOWEVENT_CLOSE:
|
||||||
|
active_ = false;
|
||||||
break;
|
break;
|
||||||
}
|
case SDL_WINDOWEVENT_SIZE_CHANGED:
|
||||||
case SDL_WINDOWEVENT:
|
io.DisplaySize.x = static_cast<float>(event.window.data1);
|
||||||
switch (event.window.event) {
|
io.DisplaySize.y = static_cast<float>(event.window.data2);
|
||||||
case SDL_WINDOWEVENT_CLOSE:
|
|
||||||
active_ = false;
|
|
||||||
break;
|
|
||||||
case SDL_WINDOWEVENT_SIZE_CHANGED:
|
|
||||||
io.DisplaySize.x = static_cast<float>(event.window.data1);
|
|
||||||
io.DisplaySize.y = static_cast<float>(event.window.data2);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,15 +93,26 @@ absl::Status Controller::OnLoad() {
|
|||||||
active_ = false;
|
active_ = false;
|
||||||
}
|
}
|
||||||
#if TARGET_OS_IPHONE != 1
|
#if TARGET_OS_IPHONE != 1
|
||||||
if (platform_ != Platform::kiOS) {
|
constexpr ImGuiWindowFlags kMainEditorFlags =
|
||||||
NewMasterFrame();
|
ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoCollapse |
|
||||||
|
ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_MenuBar |
|
||||||
|
ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_NoTitleBar;
|
||||||
|
|
||||||
|
const ImGuiIO &io = ImGui::GetIO();
|
||||||
|
ImGui_ImplSDLRenderer2_NewFrame();
|
||||||
|
ImGui_ImplSDL2_NewFrame();
|
||||||
|
ImGui::NewFrame();
|
||||||
|
ImGui::SetNextWindowPos(gui::kZeroPos);
|
||||||
|
ImVec2 dimensions(io.DisplaySize.x, io.DisplaySize.y);
|
||||||
|
ImGui::SetNextWindowSize(dimensions, ImGuiCond_Always);
|
||||||
|
|
||||||
|
if (!ImGui::Begin("##YazeMain", nullptr, kMainEditorFlags)) {
|
||||||
|
ImGui::End();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
RETURN_IF_ERROR(editor_manager_.Update());
|
RETURN_IF_ERROR(editor_manager_.Update());
|
||||||
#if TARGET_OS_IPHONE != 1
|
#if TARGET_OS_IPHONE != 1
|
||||||
if (platform_ != Platform::kiOS) {
|
ImGui::End();
|
||||||
End();
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
return absl::OkStatus();
|
return absl::OkStatus();
|
||||||
}
|
}
|
||||||
@@ -176,11 +156,11 @@ absl::Status Controller::CreateWindow() {
|
|||||||
int screen_height = display_mode.h * 0.8;
|
int screen_height = display_mode.h * 0.8;
|
||||||
|
|
||||||
window_ = std::unique_ptr<SDL_Window, core::SDL_Deleter>(
|
window_ = std::unique_ptr<SDL_Window, core::SDL_Deleter>(
|
||||||
SDL_CreateWindow("Yet Another Zelda3 Editor", // window title
|
SDL_CreateWindow("Yet Another Zelda3 Editor", // window title
|
||||||
SDL_WINDOWPOS_UNDEFINED, // initial x position
|
SDL_WINDOWPOS_UNDEFINED, // initial x position
|
||||||
SDL_WINDOWPOS_UNDEFINED, // initial y position
|
SDL_WINDOWPOS_UNDEFINED, // initial y position
|
||||||
screen_width, // width, in pixels
|
screen_width, // width, in pixels
|
||||||
screen_height, // height, in pixels
|
screen_height, // height, in pixels
|
||||||
SDL_WINDOW_RESIZABLE),
|
SDL_WINDOW_RESIZABLE),
|
||||||
core::SDL_Deleter());
|
core::SDL_Deleter());
|
||||||
if (window_ == nullptr) {
|
if (window_ == nullptr) {
|
||||||
@@ -234,7 +214,7 @@ absl::Status Controller::LoadAudioDevice() {
|
|||||||
want.format = AUDIO_S16;
|
want.format = AUDIO_S16;
|
||||||
want.channels = 2;
|
want.channels = 2;
|
||||||
want.samples = 2048;
|
want.samples = 2048;
|
||||||
want.callback = NULL; // Uses the queue
|
want.callback = NULL; // Uses the queue
|
||||||
audio_device_ = SDL_OpenAudioDevice(NULL, 0, &want, &have, 0);
|
audio_device_ = SDL_OpenAudioDevice(NULL, 0, &want, &have, 0);
|
||||||
if (audio_device_ == 0) {
|
if (audio_device_ == 0) {
|
||||||
return absl::InternalError(
|
return absl::InternalError(
|
||||||
@@ -276,6 +256,5 @@ absl::Status Controller::LoadConfigFiles() {
|
|||||||
return absl::OkStatus();
|
return absl::OkStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace core
|
} // namespace core
|
||||||
|
} // namespace yaze
|
||||||
} // namespace yaze
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ class Controller : public ExperimentFlags {
|
|||||||
absl::Status LoadConfigFiles();
|
absl::Status LoadConfigFiles();
|
||||||
|
|
||||||
void SetupScreen(std::string filename = "") {
|
void SetupScreen(std::string filename = "") {
|
||||||
editor_manager_.SetupScreen(filename);
|
editor_manager_.Initialize(filename);
|
||||||
}
|
}
|
||||||
auto editor_manager() -> editor::EditorManager & { return editor_manager_; }
|
auto editor_manager() -> editor::EditorManager & { return editor_manager_; }
|
||||||
auto renderer() -> SDL_Renderer * {
|
auto renderer() -> SDL_Renderer * {
|
||||||
|
|||||||
Reference in New Issue
Block a user