USB_Config_Vendor/CC_SDK/Include/Module/Window/CApplication.h
2026-02-03 14:36:30 +08:00

68 lines
1.9 KiB
C++

#ifndef IMGUI_CAPPLICATION_H
#define IMGUI_CAPPLICATION_H
#include "imgui.h"
#include "imgui_impl_opengl3.h"
#include "imgui_internal.h"
#include "iostream"
#include "OSCA.h"
#include <limits.h> // For PATH_MAX
#include <unistd.h> // For getcwd
static void glfw_error_callback(int error, const char* description){
fprintf(stderr, "GLFW Error %d: %s\n", error, description);
}
namespace CTL {
class GUI_Application{
public:
virtual ~GUI_Application() = default;
#ifdef _WIN32
GLFWwindow* window{};
GLFWvidmode* mode{};
#elif __linux__
GLFWwindow* window{};
GLFWvidmode* mode{};
Window x11Window{};
Display* display{};
int screen = 0;
#endif
HSize Size = {1024,800};
HSize ReSize = {0,0};
HPos Pos = {0,50};
std::string Title = "ImGui";
bool WindowCreateFlag = false,NoFrameFlag = false,CenterFlag = false;
ImVec4 Background = RGBA(255,255,255,255);
ImVec4 ClearGround = RGBA(0,0,0,0);
int argc = 0;
std::string* argv = nullptr;
float opacity = 0.0f;
GUI_Application();
GUI_Application(GUI_Application&& other) noexcept ;
GUI_Application(int argc,char** argv) noexcept ;
explicit GUI_Application(GUI_Application* CApp);
//----------------------------------------------------------------
bool WindowCreate();
void InitGL() const;
virtual void StyleWindow(){};
bool NewFrame() const;
void Render() const;
int SwapBuffers() const;
static int Stop();
//----------------------------------------------------------------
static std::string GetTheProgramDirectory();
static void Close();
//----------------------------------------------------------------
private:
std::string glsl_version;
bool closea = false;
};
}
#endif