mirror of https://github.com/encounter/aurora.git
85 lines
1.6 KiB
C++
85 lines
1.6 KiB
C++
#ifndef AURORA_AURORA_H
|
|
#define AURORA_AURORA_H
|
|
|
|
#ifdef __cplusplus
|
|
#include <cstdint>
|
|
|
|
extern "C" {
|
|
#else
|
|
#include "stdint.h"
|
|
#include "stdbool.h"
|
|
#endif
|
|
|
|
typedef enum {
|
|
BACKEND_AUTO,
|
|
BACKEND_D3D12,
|
|
BACKEND_METAL,
|
|
BACKEND_VULKAN,
|
|
BACKEND_OPENGL,
|
|
BACKEND_OPENGLES,
|
|
BACKEND_WEBGPU,
|
|
BACKEND_NULL,
|
|
} AuroraBackend;
|
|
|
|
typedef enum {
|
|
LOG_DEBUG,
|
|
LOG_INFO,
|
|
LOG_WARNING,
|
|
LOG_ERROR,
|
|
LOG_FATAL,
|
|
} AuroraLogLevel;
|
|
|
|
typedef struct {
|
|
uint32_t width;
|
|
uint32_t height;
|
|
uint32_t fb_width;
|
|
uint32_t fb_height;
|
|
float scale;
|
|
} AuroraWindowSize;
|
|
|
|
typedef struct AuroraEvent AuroraEvent;
|
|
|
|
typedef void (*AuroraLogCallback)(AuroraLogLevel level, const char* message, unsigned int len);
|
|
typedef void (*AuroraImGuiInitCallback)(const AuroraWindowSize* size);
|
|
|
|
typedef struct {
|
|
const char* appName;
|
|
const char* configPath;
|
|
AuroraBackend desiredBackend;
|
|
uint32_t msaa;
|
|
uint16_t maxTextureAnisotropy;
|
|
bool startFullscreen;
|
|
uint32_t windowWidth;
|
|
uint32_t windowHeight;
|
|
void* iconRGBA8;
|
|
uint32_t iconWidth;
|
|
uint32_t iconHeight;
|
|
AuroraLogCallback logCallback;
|
|
AuroraImGuiInitCallback imGuiInitCallback;
|
|
} AuroraConfig;
|
|
|
|
typedef struct {
|
|
AuroraBackend backend;
|
|
const char* configPath;
|
|
AuroraWindowSize windowSize;
|
|
} AuroraInfo;
|
|
|
|
AuroraInfo aurora_initialize(int argc, char* argv[], const AuroraConfig* config);
|
|
void aurora_shutdown();
|
|
const AuroraEvent* aurora_update();
|
|
bool aurora_begin_frame();
|
|
void aurora_end_frame();
|
|
|
|
#ifndef NDEBUG
|
|
#define AURORA_GFX_DEBUG_GROUPS
|
|
#endif
|
|
|
|
void push_debug_group(const char* label);
|
|
void pop_debug_group();
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|