- Replace header include guards with `#pragma once` and perform minor optimizations. - Replaced traditional include guards with `#pragma once` for simplicity and to reduce boilerplate in all headers. - Improved CLI line number handling with clamping and error messaging. - Enhanced `chdir` error handling for macOS GUI builds. - Removed redundant logic for GUI builds. - Adjusted font constructor and registry to handle `const` data pointers consistently.
36 lines
758 B
C++
36 lines
758 B
C++
/*
|
|
* GUIFrontend - couples GUIInputHandler + GUIRenderer and owns SDL2/ImGui lifecycle
|
|
*/
|
|
#pragma once
|
|
#include "Frontend.h"
|
|
#include "GUIConfig.h"
|
|
#include "GUIInputHandler.h"
|
|
#include "GUIRenderer.h"
|
|
|
|
|
|
struct SDL_Window;
|
|
typedef void *SDL_GLContext;
|
|
|
|
class GUIFrontend final : public Frontend {
|
|
public:
|
|
GUIFrontend() = default;
|
|
|
|
~GUIFrontend() override = default;
|
|
|
|
bool Init(Editor &ed) override;
|
|
|
|
void Step(Editor &ed, bool &running) override;
|
|
|
|
void Shutdown() override;
|
|
|
|
private:
|
|
static bool LoadGuiFont_(const char *path, float size_px);
|
|
|
|
GUIConfig config_{};
|
|
GUIInputHandler input_{};
|
|
GUIRenderer renderer_{};
|
|
SDL_Window *window_ = nullptr;
|
|
SDL_GLContext gl_ctx_ = nullptr;
|
|
int width_ = 1280;
|
|
int height_ = 800;
|
|
}; |