spine-c
The spine-c runtime provides basic functionality to load and manipulate Spine skeletal animation data using ANSI C. It does not perform rendering but can can be extended to enable Spine animations for any C-based language, such as C++ or Objective-C.
Setup
Project files are provided for Visual C++ Express 2010.
If SPINE_SHORT_NAMES is defined, the sp prefix for all structs and functions is optional.
Examples
Extension
Extending spine-c requires implementing three methods:
_spAtlasPage_createTextureLoads a texture and stores it in thevoid* rendererObjectfield of anspAtlasPagestruct._spAtlasPage_disposeTextureDisposes of a texture loaded with_spAtlasPage_createTexture._spUtil_readFileReads a file. If this doesn't need to be customized,_readFileis provided which reads a file usingfopen.
This allows the spine-c API to be used to load Spine animation data. Rendering is done by iterating the slots of a skeleton and rendering the attachment for each slot. spine-sfml serves as a simple example of extending spine-c.
spine-c uses an OOP style of programming where each "class" is made up of a struct and a number of functions prefixed with the struct name. More detals about how this works are available in extension.h. This mechanism allows you to provide your own implementations for spAttachmentLoader, spAttachment and spTimeline, if necessary.