Files
esengine/packages/engine/Cargo.toml
YHH 96b5403d14 refactor(render): 抽象图形后端并迁移渲染器 (#313)
* refactor(render): 抽象图形后端并迁移渲染器

- 新增 engine-shared 包,定义 GraphicsBackend trait 抽象层
- 实现 WebGL2Backend 作为首个后端实现
- 迁移 Renderer2D、SpriteBatch、GridRenderer、GizmoRenderer 使用新抽象
- 修复 VAO 创建时索引缓冲区绑定状态泄漏问题
- 新增 create_vertex_buffer_sized 方法支持预分配缓冲区

* fix(serialization): 修复序列化循环引用导致栈溢出

- 在 serializeValue 添加 WeakSet 检测循环引用
- 跳过已访问对象避免无限递归

* refactor(serialization): 提取 ValueSerializer 统一序列化逻辑

- 新增 ValueSerializer 模块,函数式设计
- 支持可扩展类型处理器注册
- 移除 ComponentSerializer/SceneSerializer 重复代码
- 内置 Date/Map/Set 类型支持

* fix: CodeQL 类型检查警告
2025-12-19 22:46:33 +08:00

93 lines
2.0 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[package]
name = "es-engine"
version = "0.1.0"
edition = "2021"
authors = ["ESEngine Team"]
description = "High-performance 2D game engine for web and mobile platforms | 高性能2D游戏引擎支持Web和移动平台"
license = "MIT"
repository = "https://github.com/esengine/esengine"
keywords = ["game-engine", "2d", "webgl", "wasm", "ecs"]
categories = ["game-engines", "wasm", "graphics"]
[lib]
crate-type = ["cdylib", "rlib"]
[features]
default = ["console_error_panic_hook"]
[dependencies]
# Shared types and traits | 共享类型和trait
es-engine-shared = { path = "../engine-shared" }
# WASM bindings | WASM绑定
wasm-bindgen = "0.2"
js-sys = "0.3"
# Web APIs | Web API
web-sys = { version = "0.3", features = [
# Core | 核心
"Window",
"Document",
"Element",
"HtmlCanvasElement",
"HtmlCollection",
"Navigator",
"Screen",
"Performance",
"console",
# WebGL2 | WebGL2渲染
"WebGl2RenderingContext",
"WebGlProgram",
"WebGlShader",
"WebGlBuffer",
"WebGlTexture",
"WebGlUniformLocation",
"WebGlVertexArrayObject",
"WebGlFramebuffer",
# Events | 事件
"KeyboardEvent",
"MouseEvent",
"TouchEvent",
"TouchList",
"Touch",
# Image | 图像
"HtmlImageElement",
"ImageData",
]}
# Math library | 数学库
glam = { version = "0.24", features = ["bytemuck"] }
# Error handling | 错误处理
thiserror = "1.0"
# Logging | 日志
log = "0.4"
console_log = { version = "1.0", features = ["color"] }
# Panic hook for better error messages | 更好的错误信息
console_error_panic_hook = { version = "0.1", optional = true }
# Serialization | 序列化
serde = { version = "1.0", features = ["derive"] }
# Byte manipulation | 字节操作
bytemuck = { version = "1.14", features = ["derive"] }
# Ordered map for preserving render order | 有序映射,用于保持渲染顺序
indexmap = "2.0"
[dev-dependencies]
wasm-bindgen-test = "0.3"
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
[profile.dev]
opt-level = 1