2023-08-25 14:38:06 -07:00
|
|
|
#pragma once
|
|
|
|
#include "imgui.h"
|
|
|
|
#include <functional>
|
|
|
|
#if defined(IMGUI_IMPL_OPENGL_ES2)
|
|
|
|
#include <SDL_opengles2.h>
|
|
|
|
#else
|
|
|
|
#include <SDL_opengl.h>
|
|
|
|
#endif
|
|
|
|
#include <SDL.h>
|
|
|
|
#include <SDL_video.h>
|
|
|
|
#include <string>
|
|
|
|
#include "theme.h"
|
|
|
|
static const char* NAME = "Neko Player";
|
|
|
|
class RendererBackend {
|
|
|
|
public:
|
2023-09-03 11:54:07 -07:00
|
|
|
double scale = 1.0;
|
2023-08-25 14:38:06 -07:00
|
|
|
SDL_Window *window;
|
|
|
|
int window_width = 475;
|
|
|
|
int window_height = 354;
|
|
|
|
bool done = false;
|
|
|
|
Theme *theme;
|
|
|
|
bool vsync = false;
|
|
|
|
std::string lang;
|
|
|
|
std::string userdir;
|
|
|
|
int framerate = 60;
|
|
|
|
ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
|
|
|
|
ImFont *title;
|
|
|
|
const char *prefPath;
|
2023-10-16 10:44:25 -07:00
|
|
|
ImVec4 accent_color = ImVec4(280.0, 1.0, 1.0, 1.0);
|
2023-08-25 14:38:06 -07:00
|
|
|
int Run();
|
|
|
|
void SetWindowTitle(const char *title);
|
|
|
|
virtual void Init();
|
|
|
|
virtual void GuiFunction();
|
|
|
|
virtual void Deinit();
|
2023-10-16 10:44:25 -07:00
|
|
|
virtual void Drop(std::string file);
|
2023-09-03 11:54:07 -07:00
|
|
|
void UpdateScale();
|
|
|
|
void AddFonts();
|
|
|
|
void SetWindowSize(int w, int h);
|
|
|
|
void GetWindowsize(int *w, int *h);
|
2023-08-25 14:38:06 -07:00
|
|
|
RendererBackend();
|
|
|
|
~RendererBackend();
|
|
|
|
};
|