You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Before editing, read enough surrounding context to understand callers and invariants; if the read tool truncated the file, read the remaining ranges before making non-trivial changes.
Follow existing code style in touched files (naming, type usage, control flow, error handling).
Dependency Constraint: Never mention or include godot or godot-cpp source code in responses or suggestions; they are external dependencies.
SDK Alignment: When modifying core playback logic, refer to ss_player/SpriteStudio7-SDK/AGENTS.md for Rust runtime constraints.
Architecture in one paragraph
A Godot Engine integration for SpriteStudio 7, providing a C++ SsPlayerNode2D that can be built as a GDExtension or a custom module. It uses libssruntime (Rust) from SpriteStudio7-SDK via FFI to play .ssab (FlatBuffers) binaries. Projects are converted from .sspj (XML) to .ssab at import-time using libssconverter. The C++ side handles Godot node lifecycle, resource management, and batch rendering.
Key components
Path
Role
Docs
ss_player/
C++ source: Node bindings, editor import dock, and FFI wrappers.
—
ss_player/runtime/
Binary artifacts (libssruntime, libssconverter) and FFI headers.
FFI Safety: C++ interacts with Rust via a C-API. Ensure SsState and other Rust-allocated handles are properly released via their respective *_release functions to avoid leaks.
Performance: Avoid per-frame allocations in the playback hot path. Use the DrawBatch plans emitted by the runtime directly for rendering.
SDK Versioning:ss_player/SDK_VERSION.txt pins the required SDK release. Binaries in ss_player/runtime/ must match this version.
Build System:SConstruct and SCsub files must be updated if new C++ source files are added.