MiMoEngine ASM: x86-64 MASM汇编+C混合架构游戏引擎
核心热路径(数学/内存/字符串/性能分析)用MASM汇编(SSE/AVX2) 外围系统(窗口/渲染/ECS/音频/UI/脚本)用C语言 含自研编辑器、VisualScript积木编程、中文渲染(glyph_atlas)
This commit is contained in:
commit
2d56cb3bc9
91 files changed
+9988
No files matched your search
@@ -0,0 +1,61 @@
|
||||
#pragma once
|
||||
|
||||
// ============================================================================
|
||||
// engine.h - 引擎核心
|
||||
// ============================================================================
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
// 前向声明
|
||||
typedef struct Window Window;
|
||||
|
||||
// 引擎配置
|
||||
typedef struct {
|
||||
const char* app_name;
|
||||
int window_width;
|
||||
int window_height;
|
||||
int fullscreen;
|
||||
int vsync;
|
||||
} EngineConfig;
|
||||
|
||||
// 引擎状态
|
||||
typedef struct {
|
||||
int running;
|
||||
int initialized;
|
||||
EngineConfig config;
|
||||
Window* window;
|
||||
void* renderer;
|
||||
double delta_time;
|
||||
double total_time;
|
||||
uint64_t frame_count;
|
||||
} Engine;
|
||||
|
||||
// 初始化默认配置
|
||||
static inline EngineConfig engine_default_config(void) {
|
||||
EngineConfig config;
|
||||
config.app_name = "MiMo Engine ASM";
|
||||
config.window_width = 1280;
|
||||
config.window_height = 720;
|
||||
config.fullscreen = 0;
|
||||
config.vsync = 1;
|
||||
return config;
|
||||
}
|
||||
|
||||
// 引擎函数
|
||||
Engine* engine_create(void);
|
||||
void engine_destroy(Engine* engine);
|
||||
int engine_init(Engine* engine, const EngineConfig* config);
|
||||
void engine_run(Engine* engine);
|
||||
void engine_shutdown(Engine* engine);
|
||||
void engine_request_quit(Engine* engine);
|
||||
|
||||
// 回调
|
||||
typedef void (*EngineUpdateCallback)(Engine* engine, double delta_time);
|
||||
typedef void (*EngineRenderCallback)(Engine* engine);
|
||||
typedef void (*EngineKeyCallback)(Engine* engine, int key);
|
||||
typedef void (*EngineResizeCallback)(Engine* engine, int width, int height);
|
||||
|
||||
void engine_set_update_callback(Engine* engine, EngineUpdateCallback callback);
|
||||
void engine_set_render_callback(Engine* engine, EngineRenderCallback callback);
|
||||
void engine_set_key_callback(Engine* engine, EngineKeyCallback callback);
|
||||
void engine_set_resize_callback(Engine* engine, EngineResizeCallback callback);
|
||||
Reference in new issue
Block a user