Files
kaizen/src/frontend/KaizenGui.hpp

33 lines
906 B
C++

#pragma once
#include <RenderWidget.hpp>
#include <NativeWindow.hpp>
#include <Debugger.hpp>
#include <ImGuiImpl/Menu.hpp>
#include <ImGuiImpl/StatusBar.hpp>
#include <EmuThread.hpp>
#include <Discord.hpp>
class KaizenGui final {
gui::NativeWindow window;
public:
explicit KaizenGui() noexcept;
~KaizenGui();
double fpsCounter = -1.0;
gui::MenuBar<true> menuBar;
gui::MenuItem actionPause{"Pause", nullptr, false}, actionStop{"Stop", nullptr, false}, actionReset{"Reset", nullptr, false};
SettingsWindow settingsWindow;
std::shared_ptr<n64::Core> core;
RenderWidget vulkanWidget;
EmuThread emuThread;
gui::PopupWindow about{"About Kaizen"};
gui::StatusBar statusBar{};
void run();
void LoadTAS(const std::string &path) const noexcept;
void LoadROM(const std::string &path) noexcept;
private:
bool quit = false;
std::function<void()> emuExitFunc;
void RenderUI();
};