Prechádzať zdrojové kódy

Merge branch '3.7-beta-cpp' of https://github.com/esotericsoftware/spine-runtimes into 3.7-beta-cpp

badlogic 7 rokov pred
rodič
commit
39226bc601
33 zmenil súbory, kde vykonal 94 pridanie a 71 odobranie
  1. 28 8
      CHANGELOG.md
  2. 1 1
      spine-as3/README.md
  3. 8 10
      spine-c/README.md
  4. 1 1
      spine-cocos2d-objc/README.md
  5. 3 3
      spine-cocos2dx/README.md
  6. 1 1
      spine-corona/README.md
  7. 17 9
      spine-cpp/README.md
  8. 1 1
      spine-js/README.md
  9. 1 1
      spine-libgdx/README.md
  10. 2 2
      spine-love/README.md
  11. 1 1
      spine-lua/README.md
  12. 2 2
      spine-monogame/README.md
  13. 3 5
      spine-sfml/c/README.md
  14. 6 8
      spine-sfml/cpp/README.md
  15. 5 5
      spine-starling/README.md
  16. 1 1
      spine-threejs/README.md
  17. 1 1
      spine-ts/README.md
  18. BIN
      spine-ue4/Content/GettingStarted/01-basic-animation.umap
  19. BIN
      spine-ue4/Content/GettingStarted/01-basic-animation_2.uasset
  20. BIN
      spine-ue4/Content/GettingStarted/06-cpp.umap
  21. BIN
      spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitAdditiveMaterial.uasset
  22. BIN
      spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitAdditiveMaterialPMC.uasset
  23. BIN
      spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitMultiplyMaterial.uasset
  24. BIN
      spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitMultiplyMaterialPMC.uasset
  25. BIN
      spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitNormalMaterial.uasset
  26. BIN
      spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitNormalMaterialPMC.uasset
  27. BIN
      spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitScreenMaterial.uasset
  28. BIN
      spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitScreenMaterialPMC.uasset
  29. 4 4
      spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonRendererComponent.cpp
  30. 4 3
      spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/SpinePlugin.Build.cs
  31. 1 1
      spine-ue4/README.md
  32. 1 1
      spine-ue4/SpineUE4.uproject
  33. 2 2
      spine-xna/README.md

+ 28 - 8
CHANGELOG.md

@@ -25,6 +25,7 @@
 * **Breaking changes**
   * Listeners on `spAnimationState` and `spTrackEntry` will now also be called if a track entry gets disposed as part of disposing an animation state.
   * The completion event will fire for looped 0 duration animations every frame.
+  * The spine-cocos2dx and spine-ue4 runtimes are now based on spine-cpp. See below for changes.
 * **Additions**
   * Added support for local and relative transform constraint calculation, including additional fields in `spTransformConstraintData`.
   * `Animation#apply` and `Timeline#apply`` now take enums `MixPose` and `MixDirection` instead of booleans
@@ -35,6 +36,22 @@
   * Added additive animation blending. When playing back multiple animations on different tracks, where each animation modifies the same skeleton property, the results of tracks with lower indices are discarded, and only the result from the track with the highest index is used. With animation blending, the results of all tracks are mixed together. This allows effects like mixing multiple facial expressions (angry, happy, sad) with percentage mixes. By default the old behaviour is retained (results from lower tracks are discarded). To enable additive blending across animation tracks, call `spTrackEntry->mixBlend = SP_MIXBLEND_ADD)` on each track. To specify the blend percentage, set `spTrackEntry->alpha`. See http://esotericsoftware.com/forum/morph-target-track-animation-mix-mode-9459 for a discussion.
   * Optimized attachment lookup to give a 40x speed-up. See https://github.com/EsotericSoftware/spine-runtimes/commit/cab81276263890b65d07fa2329ace16db1e365ff
 
+### Cocos2d-Objc
+* Added vertex effect support to modify vertices of skeletons on the CPU. See `RaptorExample.m`.
+* Explanation how to handle ARC, see https://github.com/EsotericSoftware/spine-runtimes/commit/a4f122b08c5e2a51d6aad6fc5a947f7ec31f2eb8
+* The super class `::update()` method of `SkeletonRenderer` is now called, see https://github.com/EsotericSoftware/spine-runtimes/commit/f7bb98185236a6d8f35bfefc70afe4f31e9ec9d2
+* Added improved tint-black shader.
+
+### SFML
+* `spine-sfml.h` no longer defines `SPINE_SHORT_NAMES` to avoid collisions with other APIs. See #1058.
+* Added support for vertex effects. See raptor example.
+* Added premultiplied alpha support to `SkeletonDrawable`. Use `SkeletonDrawable::setUsePremultipliedAlpha()`, see https://github.com/EsotericSoftware/spine-runtimes/commit/34086c1f41415309b2ecce86055f6656fcba2950
+* Added additive animation blending sample, see https://github.com/EsotericSoftware/spine-runtimes/blob/b7e712d3ca1d6be3ebcfe3254dc2cea9c44dda71/spine-sfml/example/main.cpp#L369
+
+## C++
+* ** Additions **
+  * Added C++ Spine runtime. See the [spine-cpp Runtime Guide](https://esotericsoftware.com/spine-cpp) for more information on spine-cpp.
+
 ### Cocos2d-x
 * Added ETC1 alpha support, thanks @halx99! Does not work when two color tint is enabled.
 * Added `spAtlasPage_setCustomTextureLoader()` which let's you do texture loading manually. Thanks @jareguo.
@@ -43,15 +60,13 @@
 * Added improved tint-black shader.
 * Updated to cocos2d-x 3.16
 * The skeleton setup pose and world transform are now calculated on initialization to avoid flickering on start-up.
-
-### Cocos2d-Objc
-* Added vertex effect support to modify vertices of skeletons on the CPU. See `RaptorExample.m`.
-* Explanation how to handle ARC, see https://github.com/EsotericSoftware/spine-runtimes/commit/a4f122b08c5e2a51d6aad6fc5a947f7ec31f2eb8
-* The super class `::update()` method of `SkeletonRenderer` is now called, see https://github.com/EsotericSoftware/spine-runtimes/commit/f7bb98185236a6d8f35bfefc70afe4f31e9ec9d2
-* Added improved tint-black shader.
+* **Breaking change**: Switched from [spine-c](spine-c) to [spine-cpp](spine-cpp) as the underlying Spine runtime. See the [spine-cpp Runtime Guide](https://esotericsoftware.com/spine-cpp) for more information on spine-cpp.
+  * Added `Cocos2dAttachmentLoader` to be used when constructing an `Atlas`. Used by default by `SkeletonAnimation` and `SkeletonRenderer` when creating instances via the `createXXX` methods.
+  * All C structs and enums `spXXX` have been replaced with their C++ equivalents `spine::XXX` in all public interfaces.
+  * All instantiations via `new` of C++ classes from spine-cpp must contain `(__FILE__, __LINE__)`. This allows the tracking of instantations and detection of memory leaks via the `spine::DebugExtension`.
 
 ### SFML
-* `spine-sfml.h` no longer defines `SPINE_SHORT_NAMES` to avoid collisions with other APIs. See #1058.
+* Create a second SFML backend using [spine-cpp](spine-cpp/). See the [spine-cpp Runtime Guide](https://esotericsoftware.com/spine-cpp) for more information on spine-cpp.
 * Added support for vertex effects. See raptor example.
 * Added premultiplied alpha support to `SkeletonDrawable`. Use `SkeletonDrawable::setUsePremultipliedAlpha()`, see https://github.com/EsotericSoftware/spine-runtimes/commit/34086c1f41415309b2ecce86055f6656fcba2950
 * Added additive animation blending sample, see https://github.com/EsotericSoftware/spine-runtimes/blob/b7e712d3ca1d6be3ebcfe3254dc2cea9c44dda71/spine-sfml/example/main.cpp#L369
@@ -62,7 +77,12 @@
  * Added C++ example, see https://github.com/EsotericSoftware/spine-runtimes/commit/15011e81b7061495dba45e28b4d3f4efb10d7f40
  * `SkeletonRendererComponent` generates collision meshes by default.
  * Disabled generation of collision meshes by `SkeletonRendererComponent`. Both `ProceduralMeshComponent` and `RuntimeMeshComponent` have a bug that generates a new PhysiX file every frame per component. Users are advised to add a separate collision shape to the root scene component of an actor instead.
- * Using UE4 `FMemory` allocator by default.
+ * Using UE4 `FMemory` allocator by default. This should fix issues on some consoles.
+ * **Breaking change** moved away from `RuntimeMeshComponent`, as its maintainance has seized, back to `ProceduralMeshComponent`. Existing projects should just work. However, if you run into issues, you may have to remove the old `SpineSkeletonRendererComponent` and add a new one to your existing actors.
+ * **Breaking change** due to the removal of `RuntimeMeshComponent` and reversal to `ProceduralMeshComponent`, two color tinting is currently not supported. `ProceduralMeshComponent` does not support enough vertex attributes for us to encode the second color in the vertex stream. You can remove the `RuntimeMeshComponent/` directory from your plugins directory and remove the component from any `build.cs` files that may reference it.
+ * **Breaking change**: Switched from [spine-c](spine-c) to [spine-cpp](spine-cpp) as the underlying Spine runtime. See the [spine-cpp Runtime Guide](https://esotericsoftware.com/spine-cpp) for more information on spine-cpp.
+  * All C structs and enums `spXXX` have been replaced with their C++ equivalents `spine::XXX` in all public interfaces.
+  * All instantiations via `new` of C++ classes from spine-cpp must contain `(__FILE__, __LINE__)`. This allows the tracking of instantations and detection of memory leaks via the `spine::DebugExtension`.
 
 ## C# ##
 * **Breaking changes**

+ 1 - 1
spine-as3/README.md

@@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
 
 ## Spine version
 
-spine-as3 works with data exported from Spine 3.6.xx.
+spine-as3 works with data exported from Spine 3.7.xx.
 
 spine-as3 supports all Spine features, including meshes. If using the `spine.flash` classes for rendering, meshes are not supported.
 

+ 8 - 10
spine-c/README.md

@@ -1,8 +1,6 @@
 # spine-c
 
-The spine-c runtime provides basic functionality to load and manipulate [Spine](http://esotericsoftware.com) skeletal animation data using ANSI C. It does not perform rendering but can be extended to enable Spine animations for other C-based projects, including C++ or Objective-C projects.
-
-For a pure C++ API, you may consider the third party Spine runtime [Chobolabs/spine-cpp](https://github.com/Chobolabs/spine-cpp).
+The spine-c runtime provides basic functionality to load and manipulate [Spine](http://esotericsoftware.com) skeletal animation data using ANSI C89. It does not perform rendering but can be extended to enable Spine animations for other C-based projects, including C++ or Objective-C projects.
 
 ## Licensing
 
@@ -12,19 +10,20 @@ The Spine Runtimes are developed with the intent to be used with data exported f
 
 ## Spine version
 
-spine-c works with data exported from Spine 3.6.xx.
+spine-c works with data exported from Spine 3.7.xx.
 
 spine-c supports all Spine features.
 
 ## Setup
 
 1. Download the Spine Runtimes source using [git](https://help.github.com/articles/set-up-git) or by downloading it as a zip via the download button above.
-1. Open the `spine-c.sln` Visual C++ 2010 Express project file. For other IDEs, you will need to create a new project and import the source.
-
-Alternatively, the contents of the `spine-c/spine-c/src` and `spine-c/spine-c/include` directories can be copied into your project. Be sure your header search is configured to find the contents of the `spine-c/spine-c/include` directory. Note that the includes use `spine/Xxx.h`, so the `spine` directory cannot be omitted when copying the files.
+1. Copy the contents of the `spine-c/spine-c/src` and `spine-c/spine-c/include` directories into your project. Be sure your header search is configured to find the contents of the `spine-c/spine-c/include` directory. Note that the includes use `spine/Xxx.h`, so the `spine` directory cannot be omitted when copying the files.
 
 If `SPINE_SHORT_NAMES` is defined, the `sp` prefix for all structs and functions is optional. Only use this if the spine-c names won't cause a conflict.
 
+## Usage
+### [Please see the spine-c guide for full documentation](http://esotericsoftware.com/spine-c)
+
 ## Extension
 
 Extending spine-c requires implementing three methods:
@@ -37,12 +36,11 @@ With these implemented, the spine-c API can then be used to load Spine animation
 
 For example, `AtlasAttachmentLoader` is typically used to load attachments when using a Spine texture atlas. When `AtlasAttachmentLoader` loads a `RegionAttachment`, the attachment's `void* rendererObject` is set to an `AtlasRegion`. Rendering code can then obtain the `AtlasRegion` from the attachment, get the `AtlasPage` it belongs to, and get the page's `void* rendererObject`. This is the renderer specific texture object set by `_spAtlasPage_createTexture`. Attachment loading can be [customized](http://esotericsoftware.com/spine-using-runtimes/#attachmentloader) if not using `AtlasAttachmentLoader` or to provider different renderer specific data.
 
-[spine-sfml](../spine-sfml/src/spine/spine-sfml.cpp#L39) serves as a simple example of extending spine-c.
+[spine-sfml](../spine-sfml/src/c/spine/spine-sfml.cpp#L39) 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](spine-c/include/spine/extension.h#L2). This mechanism allows you to provide your own implementations for `spAttachmentLoader`, `spAttachment` and `spTimeline`, if necessary.
 
 ## Runtimes extending spine-c
 
-- [spine-cocos2d-iphone](../spine-cocos2d-objc)
-- [spine-cocos2dx](../spine-cocos2dx)
+- [spine-cocos2d-objc](../spine-cocos2d-objc)
 - [spine-sfml](../spine-sfml)

+ 1 - 1
spine-cocos2d-objc/README.md

@@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
 
 ## Spine version
 
-spine-cocos2d-objc works with data exported from Spine 3.6.x.
+spine-cocos2d-objc works with data exported from Spine 3.7.x.
 
 spine-cocos2d-objc supports all Spine features.
 

+ 3 - 3
spine-cocos2dx/README.md

@@ -1,6 +1,6 @@
 # spine-cocos2dx v3.x
 
-The spine-cocos2dx runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [cocos2d-x](http://www.cocos2d-x.org/). spine-cocos2dx is based on [spine-cpp](https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine-cpp).
+The spine-cocos2dx runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [cocos2d-x](http://www.cocos2d-x.org/). spine-cocos2dx is based on [spine-cpp](../spine-cpp).
 
 ## Licensing
 
@@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
 
 ## Spine version
 
-spine-cocos2dx works with data exported from Spine 3.6.xx.
+spine-cocos2dx works with data exported from Spine 3.7.xx.
 
 spine-cocos2dx supports all Spine features.
 
@@ -26,7 +26,7 @@ The setup for cocos2d-x differs from most other Spine Runtimes because the cocos
 4. Add the folders `spine-cpp/spine-cpp/include` and `spine-cocos2dx/src` to your header search path. Note that includes are specified as `#inclue <spine/file.h>`, so the `spine` directory cannot be omitted when copying the source files.
 
 ## Example
-The Spine cocos2d-x example works on Windows and Mac OS X.
+The Spine cocos2d-x example works on Windows, Mac OS X, iOS and Android.
 
 ### Windows
 1. Install [Visual Studio 2015 Community](https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx)

+ 1 - 1
spine-corona/README.md

@@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
 
 ## Spine version
 
-spine-corona works with data exported from Spine 3.6.xx.
+spine-corona works with data exported from Spine 3.7.xx.
 
 spine-corona supports all Spine features.
 

+ 17 - 9
spine-cpp/README.md

@@ -10,30 +10,38 @@ The spine Runtimes are developed with the intent to be used with data exported f
 
 ## spine version
 
-spine-cpp works with data exported from spine 3.6.xx.
+spine-cpp works with data exported from spine 3.7.xx.
 
 spine-cpp supports all spine features.
 
 ## Setup
 
 1. Download the spine Runtimes source using [git](https://help.github.com/articles/set-up-git) or by downloading it as a zip via the download button above.
-2. Create a new project and import the source.
-
-Alternatively, the contents of the `spine-cpp/spine-cpp/src` and `spine-cpp/spine-cpp/include` directories can be copied into your project. Be sure your header search is configured to find the contents of the `spine-cpp/spine-cpp/include` directory. Note that the includes use `spine/Xxx.h`, so the `spine` directory cannot be omitted when copying the files.
+2. Copy the contents of the `spine-cpp/spine-cpp/src` and `spine-cpp/spine-cpp/include` directories into your project. Be sure your header search is configured to find the contents of the `spine-cpp/spine-cpp/include` directory. Note that the includes use `spine/Xxx.h`, so the `spine` directory cannot be omitted when copying the files.
 
 ## Extension
 
-Extending spine-cpp requires implementing both the SpineExtension class (which has a handy default instance) and the TextureLoader class:
+Extending spine-cpp requires implementing both the `SpineExtension` class and the TextureLoader class:
 
-spine::SpineExtension::setInstance(spine::DefaultSpineExtension::getInstance());
+```
+#include <spine/Extension.h>
+void spine::SpineExtension *spine::getDefaultExtension() {
+  return new spine::DefaultExtension();
+}
 
-class MyTextureLoader : public TextureLoader
+class MyTextureLoader : public spine::TextureLoader
 {
-  virtual void load(AtlasPage& page, const String& path) { // TODO }
+  virtual void load(spine::AtlasPage& page, const spine::String& path) {
+    void* texture = ... load the texture based on path ...
+    page->setRendererObject(texture); // use the texture later in your rendering code
+  }
 
   virtual void unload(void* texture) { // TODO }
 };
+```
 
 ## Runtimes extending spine-cpp
 
-- Coming Soon!
+- [spine-sfml](../spine-sfml/cpp)
+- [spine-cocos2dx](../spine-cocos2dx)
+- [spine-ue4](../spine-ue4)

+ 1 - 1
spine-js/README.md

@@ -1,3 +1,3 @@
 # spine-js
 
-spine-js has been deprecated and is superseded by [spine-ts](https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine-ts). The most recent version of spine-js can be found in the [spine-js branch](https://github.com/EsotericSoftware/spine-runtimes/tree/spine-js/spine-js)
+spine-js has been deprecated and is superseded by [spine-ts](../spine-ts).

+ 1 - 1
spine-libgdx/README.md

@@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
 
 ## Spine version
 
-spine-libgdx works with data exported from Spine 3.6.xx.
+spine-libgdx works with data exported from Spine 3.7.xx.
 
 spine-libgdx supports all Spine features and is the reference runtime implementation.
 

+ 2 - 2
spine-love/README.md

@@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
 
 ## Spine version
 
-spine-love works with data exported from Spine 3.6.x.
+spine-love works with data exported from Spine 3.7.x.
 
 spine-love supports all Spine features except for blending modes other than normal.
 
@@ -26,7 +26,7 @@ Alternatively, the `spine-lua` and `spine-love/spine-love` directories can be co
 
 ## Notes
 
- * Two enable two color tinting, pass `true` to `SkeletonRenderer.new()`.
+ * To enable two color tinting, pass `true` to `SkeletonRenderer.new()`.
 
 ## Examples
 

+ 1 - 1
spine-lua/README.md

@@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
 
 ## Spine version
 
-spine-lua works with data exported from Spine 3.6.xx.
+spine-lua works with data exported from Spine 3.7.xx.
 
 spine-lua supports all Spine features.
 

+ 2 - 2
spine-monogame/README.md

@@ -1,6 +1,6 @@
 # spine-monogame
 
-The spine-monogame runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [MonoGame](http://monogame.codeplex.com/). spine-monogame is based on [spine-xna](https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine-xna) and adds MonoGame project files.
+The spine-monogame runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [MonoGame](http://monogame.codeplex.com/). spine-monogame is based on [spine-xna](../spine-xna) and adds MonoGame project files.
 
 ## Licensing
 
@@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
 
 ## Spine version
 
-spine-monogame works with data exported from Spine 3.6.xx.
+spine-monogame works with data exported from Spine 3.7.xx.
 
 spine-monogame supports all Spine features.
 

+ 3 - 5
spine-sfml/c/README.md

@@ -1,6 +1,6 @@
 # spine-sfml
 
-The spine-sfml runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [SFML](http://www.sfml-dev.org/). spine-sfml is based on [spine-c](../spine-c).
+The spine-sfml runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [SFML](http://www.sfml-dev.org/). spine-sfml is based on [spine-c](../../spine-c).
 
 ## Licensing
 
@@ -10,11 +10,9 @@ The Spine Runtimes are developed with the intent to be used with data exported f
 
 ## Spine version
 
-spine-sfml works with data exported from Spine 3.6.xx.
+spine-sfml works with data exported from Spine 3.7.xx.
 
-spine-sfml supports all Spine features.
-
-spine-sfml does not yet support loading the binary format.
+spine-sfml supports all Spine features except two color tinting.
 
 ## Usage
 1. Create a new SFML project. See the [SFML documentation](http://www.sfml-dev.org/tutorials/2.1/) or have a look at the example in this repository.

+ 6 - 8
spine-sfml/cpp/README.md

@@ -1,6 +1,6 @@
 # spine-sfml
 
-The spine-sfml runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [SFML](http://www.sfml-dev.org/). spine-sfml is based on [spine-c](../spine-c).
+The spine-sfml runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [SFML](http://www.sfml-dev.org/). spine-sfml is based on [spine-c](../../spine-cpp).
 
 ## Licensing
 
@@ -10,17 +10,15 @@ The Spine Runtimes are developed with the intent to be used with data exported f
 
 ## Spine version
 
-spine-sfml works with data exported from Spine 3.6.xx.
+spine-sfml works with data exported from Spine 3.7.xx.
 
-spine-sfml supports all Spine features.
-
-spine-sfml does not yet support loading the binary format.
+spine-sfml supports all Spine features except two color tinting.
 
 ## Usage
 1. Create a new SFML project. See the [SFML documentation](http://www.sfml-dev.org/tutorials/2.1/) or have a look at the example in this repository.
 2. 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.
-3. Add the sources from `spine-c/spine-c/src/spine` and `spine-sfml/src/spine` to your project
-4. Add the folder `spine-c/spine-c/include` to your header search path. Note that includes are specified as `#inclue <spine/file.h>`, so the `spine` directory cannot be omitted when copying the source files.
+3. Add the sources from `spine-cpp/spine-cpp/src/spine` and `spine-sfml/src/spine` to your project
+4. Add the folder `spine-cpp/spine-cpp/include` to your header search path. Note that includes are specified as `#inclue <spine/file.h>`, so the `spine` directory cannot be omitted when copying the source files.
 
 See the [Spine Runtimes documentation](http://esotericsoftware.com/spine-documentation#runtimesTitle) on how to use the APIs or check out the Spine SFML example.
 
@@ -41,7 +39,7 @@ The Spine SFML example works on Windows, Linux and Mac OS X.
 11. Select `Debugging` in the left-hand list, then set `Working Directory` to `$(OutputPath)`
 12. Click `Local Windows Debugger` to run the example
 
-The entire example code is contained in [main.cpp](example/main.cpp#L61)
+The entire example code is contained in [main.cpp](example/main.cpp)
 
 ### Linux
 1. Install the SFML dependencies, e.g. on Ubuntu/Debian via `sudo apt install libsfml-dev`

+ 5 - 5
spine-starling/README.md

@@ -1,6 +1,6 @@
 # spine-starling
 
-The spine-starling runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [Starling 2.0](http://gamua.com/starling/). spine-starling is based on [spine-as3](https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine-as3).
+The spine-starling runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [Starling 2.0](http://gamua.com/starling/). spine-starling is based on [spine-as3](../spine-as3).
 
 ## Licensing
 
@@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
 
 ## Spine version
 
-spine-starling works with data exported from Spine 3.6.xx.
+spine-starling works with data exported from Spine 3.7.xx.
 
 spine-starling supports all Spine features.
 
@@ -41,6 +41,6 @@ The Spine AS3 example works on Windows, Linux and Mac OS X. This guide assumes y
 
 ## Examples
 
-[Spine atlas example](spine-starling-example/src/AtlasExample.as#L21)
-[Starling atlas example](spine-starling-example/src/StarlingAtlasExample.as#L18)
-[Skin example](spine-starling-example/src/GoblinsExample.as#L21)
+- [Spine atlas example](spine-starling-example/src/AtlasExample.as#L21)
+- [Starling atlas example](spine-starling-example/src/StarlingAtlasExample.as#L18)
+- [Skin example](spine-starling-example/src/GoblinsExample.as#L21)

+ 1 - 1
spine-threejs/README.md

@@ -1,3 +1,3 @@
 # spine-threejs
 
-spine-threejs has been deprecated and is superseded by [spine-ts THREE.JS backend](../spine-ts). The most recent version of spine-threejs can be found in the [spine-threejs branch](https://github.com/EsotericSoftware/spine-runtimes/tree/spine-threejs/spine-threejs)
+spine-threejs has been deprecated and is superseded by [spine-ts THREE.JS backend](../spine-ts).

+ 1 - 1
spine-ts/README.md

@@ -18,7 +18,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
 
 ## Spine version
 
-spine-ts works with data exported from Spine 3.6.xx.
+spine-ts works with data exported from Spine 3.7.xx.
 
 spine-ts WebGL & Widget backends supports all Spine features.
 

BIN
spine-ue4/Content/GettingStarted/01-basic-animation.umap


BIN
spine-ue4/Content/GettingStarted/01-basic-animation_2.uasset


BIN
spine-ue4/Content/GettingStarted/06-cpp.umap


BIN
spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitAdditiveMaterial.uasset


BIN
spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitAdditiveMaterialPMC.uasset


BIN
spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitMultiplyMaterial.uasset


BIN
spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitMultiplyMaterialPMC.uasset


BIN
spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitNormalMaterial.uasset


BIN
spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitNormalMaterialPMC.uasset


BIN
spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitScreenMaterial.uasset


BIN
spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitScreenMaterialPMC.uasset


+ 4 - 4
spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonRendererComponent.cpp

@@ -43,16 +43,16 @@ USpineSkeletonRendererComponent::USpineSkeletonRendererComponent (const FObjectI
 	bTickInEditor = true;
 	bAutoActivate = true;
 
-	static ConstructorHelpers::FObjectFinder<UMaterialInterface> NormalMaterialRef(TEXT("/SpinePlugin/SpineUnlitNormalMaterialPMC"));
+	static ConstructorHelpers::FObjectFinder<UMaterialInterface> NormalMaterialRef(TEXT("/SpinePlugin/SpineUnlitNormalMaterial"));
 	NormalBlendMaterial = NormalMaterialRef.Object;
 	
-	static ConstructorHelpers::FObjectFinder<UMaterialInterface> AdditiveMaterialRef(TEXT("/SpinePlugin/SpineUnlitAdditiveMaterialPMC"));
+	static ConstructorHelpers::FObjectFinder<UMaterialInterface> AdditiveMaterialRef(TEXT("/SpinePlugin/SpineUnlitAdditiveMaterial"));
 	AdditiveBlendMaterial = AdditiveMaterialRef.Object;
 	
-	static ConstructorHelpers::FObjectFinder<UMaterialInterface> MultiplyMaterialRef(TEXT("/SpinePlugin/SpineUnlitMultiplyMaterialPMC"));
+	static ConstructorHelpers::FObjectFinder<UMaterialInterface> MultiplyMaterialRef(TEXT("/SpinePlugin/SpineUnlitMultiplyMaterial"));
 	MultiplyBlendMaterial = MultiplyMaterialRef.Object;
 	
-	static ConstructorHelpers::FObjectFinder<UMaterialInterface> ScreenMaterialRef(TEXT("/SpinePlugin/SpineUnlitScreenMaterialPMC"));
+	static ConstructorHelpers::FObjectFinder<UMaterialInterface> ScreenMaterialRef(TEXT("/SpinePlugin/SpineUnlitScreenMaterial"));
 	ScreenBlendMaterial = ScreenMaterialRef.Object;
 	
 	TextureParameterName = FName(TEXT("SpriteTexture"));

+ 4 - 3
spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/SpinePlugin.Build.cs

@@ -8,9 +8,10 @@ namespace UnrealBuildTool.Rules
 		{
 			PublicIncludePaths.AddRange(new string[] { "SpinePlugin/Public", "SpinePlugin/Public/spine-cpp/include" });
             PrivateIncludePaths.AddRange(new string[] { "SpinePlugin/Private", "SpinePlugin/Public/spine-cpp/include" });
-            PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "RHI", "RenderCore", "ShaderCore", "ProceduralMeshComponent", "UMG", "Slate", "SlateCore" });
-            OptimizeCode = CodeOptimization.Never;
-			PublicDefinitions.Add("SPINE_UE4");
+            PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "RHI", "RenderCore", "ShaderCore", "ProceduralMeshComponent", "UMG", "Slate", "SlateCore" });		
+			Definitions.Add("SPINE_UE4");
+			// In Unreal 4.20, comment the above line, uncomment the below line
+			// PublicDefinitions.Add("SPINE_UE4");
 		}
 	}
 }

+ 1 - 1
spine-ue4/README.md

@@ -1,5 +1,5 @@
 # spine-ue4
-The spine-ue4 runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [Unreal Engine 4.15+](https://www.unrealengine.com/). spine-ue4 is based on [spine-cpp](../spine-cpp).
+The spine-ue4 runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [Unreal Engine 4.17+](https://www.unrealengine.com/). spine-ue4 is based on [spine-cpp](../spine-cpp).
 
 ## Licensing
 

+ 1 - 1
spine-ue4/SpineUE4.uproject

@@ -1,6 +1,6 @@
 {
 	"FileVersion": 3,
-	"EngineAssociation": "4.19",
+	"EngineAssociation": "4.17",
 	"Category": "",
 	"Description": "",
 	"Modules": [

+ 2 - 2
spine-xna/README.md

@@ -1,6 +1,6 @@
 # spine-xna
 
-The spine-xna runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [XNA](http://msdn.microsoft.com/xna/). spine-xna is based on [spine-csharp](https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine-csharp).
+The spine-xna runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [XNA](http://msdn.microsoft.com/xna/). spine-xna is based on [spine-csharp](../spine-csharp).
 
 ## Licensing
 
@@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
 
 ## Spine version
 
-spine-xna works with data exported from Spine 3.6.xx.
+spine-xna works with data exported from Spine 3.7.xx.
 
 spine-xna supports all Spine features.