spine-sfml
The spine-sfml runtime provides functionality to load, manipulate and render Spine skeletal animation data using SFML. spine-sfml is based on spine-cpp.
Licensing
This Spine Runtime may only be used for personal or internal use, typically to evaluate Spine before purchasing. If you would like to incorporate a Spine Runtime into your applications, distribute software containing a Spine Runtime, or modify a Spine Runtime, then you will need a valid Spine license. Please see the Spine Runtimes Software License for detailed information.
The Spine Runtimes are developed with the intent to be used with data exported from Spine. By purchasing Spine, Section 2 of the Spine Software License grants the right to create and distribute derivative works of the Spine Runtimes.
Spine version
spine-sfml works with data exported from Spine 3.7.xx.
spine-sfml supports all Spine features except two color tinting.
Usage
- Create a new SFML project. See the SFML documentation or have a look at the example in this repository.
- Download the Spine Runtimes source using git (
git clone https://github.com/esotericsoftware/spine-runtimes) or download it as a zip via the download button above. - Add the sources from
spine-cpp/spine-cpp/src/spineandspine-sfml/src/spineto your project - Add the folder
spine-cpp/spine-cpp/includeto your header search path. Note that includes are specified as#inclue <spine/file.h>, so thespinedirectory cannot be omitted when copying the source files.
See the Spine Runtimes documentation on how to use the APIs or check out the Spine SFML example.
Example
The Spine SFML example works on Windows, Linux and Mac OS X.
Windows
- Install Visual Studio 2015 Community. Make sure you install support for C++ as well as th Windows SDK for XP/7/8.
- Install CMake via the Windows installer package.
- Download the Spine Runtimes repository using git (
git clone https://github.com/esotericsoftware/spine-runtimes) or download it as a zip via the download button above. - Run CMake GUI from the start menu
- Click
Browse Sourceand select the directoryspine-runtimes - Click
Browse Buildand select thespine-runtimes/spine-sfml/builddirectory. You can create thebuildfolder directly in the file dialog viaNew Folder. - Click
Configure. Then clickGenerate. This will create a Visual Studio 2015 solution file calledspine.slninspine-runtimes/spine-sfml/buildand also download the SFML dependencies. - Open the
spine.slnfile in Visual Studio 2015 - Right click the
spine-sfml-exampleproject in the solution explorer and selectSet as Startup Projectfrom the context menu - Right click the
spine-sfml-exampleproject in the solution explorer and selectPropertiesfrom the context menu - Select
Debuggingin the left-hand list, then setWorking Directoryto$(OutputPath) - Click
Local Windows Debuggerto run the example
The entire example code is contained in main.cpp
Linux
- Install the SFML dependencies, e.g. on Ubuntu/Debian via
sudo apt install libsfml-dev - Install CMake, e.g. on Ubuntu/Debian via
sudo apt-get install -y cmake - Download the Spine Runtimes repository using git (
git clone https://github.com/esotericsoftware/spine-runtimes) or download it as a zip via the download button above. - Open a terminal, and
cdinto thespine-runtimes/spine-sfmlfolder - Type
mkdir build && cd build && cmake ../..to generate Make files - Type
maketo compile the example - Run the example by
cd spine-sfml && ./spine-sfml-example
Mac OS X
- Install Xcode
- Install Homebrew
- Open a terminal and install CMake via
brew install cmake - Download the Spine Runtimes repository using git (
git clone https://github.com/esotericsoftware/spine-runtimes) or download it as a zip via the download button above. - Open a terminal, and
cdinto thespine-runtimes/spine-sfmlfolder - Type
mkdir build && cd build && cmake -G Xcode ../..to generate an Xcode project calledspine.xcodeproj - Open the Xcode project in
spine-runtimes/spine-sfml/build/ - In Xcode, set the active scheme from
ALL_BUILDtospine-sfml-example - Click the
Runbutton or typeCMD+Rto run the example
Notes
- Atlas images should not use premultiplied alpha.