MiMoEngine ASM: x86-64 MASM汇编+C混合架构游戏引擎

核心热路径(数学/内存/字符串/性能分析)用MASM汇编(SSE/AVX2)
外围系统(窗口/渲染/ECS/音频/UI/脚本)用C语言
含自研编辑器、VisualScript积木编程、中文渲染(glyph_atlas)
This commit is contained in:
shuiyu1123 committed 2026-07-10 19:20:40 +08:00
commit 2d56cb3bc9
91 files changed
+9988

No files matched your search

+54
View File
@@ -0,0 +1,54 @@
#pragma once
// ============================================================================
// block_workspace.h - 工作区管理
// ============================================================================
#include "block_core.h"
#define MAX_WORKSPACE_BLOCKS 1024
#define MAX_WORKSPACE_CONNECTIONS 2048
typedef struct BlockWorkspace {
Block* blocks[MAX_WORKSPACE_BLOCKS];
int block_count;
BlockConnection connections[MAX_WORKSPACE_CONNECTIONS];
int connection_count;
float view_x, view_y;
float zoom;
Block* selected_block;
BlockSlot* dragging_from;
float drag_start_x, drag_start_y;
int next_block_id;
struct BlockPalette* palette;
} BlockWorkspace;
// 创建/销毁
BlockWorkspace* workspace_create(void);
void workspace_destroy(BlockWorkspace* ws);
// 添加/移除积木
int workspace_add_block(BlockWorkspace* ws, Block* block);
void workspace_remove_block(BlockWorkspace* ws, int block_id);
// 添加/移除连接
bool workspace_add_connection(BlockWorkspace* ws, BlockSlot* from, BlockSlot* to);
void workspace_remove_connection(BlockWorkspace* ws, BlockSlot* from);
void workspace_remove_all_connections(BlockWorkspace* ws, Block* block);
// 查找
Block* workspace_find_block(BlockWorkspace* ws, int block_id);
Block* workspace_find_block_at(BlockWorkspace* ws, float x, float y);
BlockSlot* workspace_find_slot_at(BlockWorkspace* ws, float x, float y);
// 视口变换
void workspace_screen_to_world(BlockWorkspace* ws, float sx, float sy, float* wx, float* wy);
void workspace_world_to_screen(BlockWorkspace* ws, float wx, float wy, float* sx, float* sy);
// 清空
void workspace_clear(BlockWorkspace* ws);