Merge branch '3.8' into 3.9-beta

This commit is contained in:
badlogic 2019-09-19 15:27:43 +02:00
commit 400d465bb4
6 changed files with 21 additions and 6 deletions

View File

@ -164,6 +164,7 @@
### Cocos2d-x
* Updated to cocos2d-x 3.17.1
* Added mix-and-match example to demonstrate the new Skin API.
* Exmaple project requires Visual Studio 2019 on Windows
### SFML
* Added mix-and-match example to demonstrate the new Skin API.

View File

@ -33,15 +33,16 @@ The setup for cocos2d-x differs from most other Spine Runtimes because the cocos
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. Install [Visual Studio 2019 Community](https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx)
2. Install CMake via the [Windows installer package](https://cmake.org/download/).
3. 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.
4. Run CMake GUI from the start menu
5. Click `Browse Source` and select the directory `spine-runtimes`
6. Click `Browse Build` and select the `spine-runtimes/spine-cocos2dx/build` directory. You can create the `build` folder directly in the file dialog via `New Folder`.
7. Click `Configure`. This will download the cocos2d-x dependency and wire it up with the example source code in `spine-runtimes/spine-cocos2dx/example`. The download is 400mb, so get yourself a cup of tea.
7. Click `Configure`. Check `SPINE_COCOS2D_X`
8. Click `Configure` again. This will download the cocos2d-x dependency and wire it up with the example source code in `spine-runtimes/spine-cocos2dx/example`. The download is 400mb, so get yourself a cup of tea.
7. Open the file `spine-cocos2dx\example\cocos2d\cocos\2d\cocos2dx.props` and remove the `libSpine.lib` entry from the `<AdditionalDependencies>` tag.
8. Open the `spine-runtimes/spine-cocos2dx/example/proj.win32/spine-cocos2d-x.sln` file in Visual Studio 2015. Visual Studio may ask you to install the Windows XP/7 SDK, which you should install.
8. Open the `spine-runtimes/spine-cocos2dx/example/proj.win32/spine-cocos2d-x.sln` file in Visual Studio 2019. Visual Studio may ask you to install the Windows XP/7 SDK, which you should install.
9. Expand `References` of the libcocos2d sub project, and remove the entry for `libSpine`, which should be marked with an error.
9. Right click the `spine-cocos2d-x` project in the solution explorer and select `Set as Startup Project` from the context menu
10. Click `Local Windows Debugger` to run the example

View File

@ -112,7 +112,7 @@ bool AppDelegate::applicationDidFinishLaunching () {
// create a scene. it's an autorelease object
//auto scene = RaptorExample::scene();
auto scene = MixAndMatchExample::scene();
auto scene = BatchingExample::scene();
// run
director->runWithScene(scene);

View File

@ -63,12 +63,14 @@ public:
void clearAllocations() {
_allocated.clear();
_usedMemory = 0;
}
virtual void *_alloc(size_t size, const char *file, int line) {
void *result = _extension->_alloc(size, file, line);
_allocated[result] = Allocation(result, size, file, line);
_allocations++;
_usedMemory += size;
return result;
}
@ -76,14 +78,17 @@ public:
void *result = _extension->_calloc(size, file, line);
_allocated[result] = Allocation(result, size, file, line);
_allocations++;
_usedMemory += size;
return result;
}
virtual void *_realloc(void *ptr, size_t size, const char *file, int line) {
if (_allocated.count(ptr)) _usedMemory -= _allocated[ptr].size;
_allocated.erase(ptr);
void *result = _extension->_realloc(ptr, size, file, line);
_reallocations++;
_allocated[result] = Allocation(result, size, file, line);
_usedMemory += size;
return result;
}
@ -91,6 +96,7 @@ public:
if (_allocated.count(mem)) {
_extension->_free(mem, file, line);
_frees++;
_usedMemory -= _allocated[mem].size;
_allocated.erase(mem);
return;
}
@ -102,6 +108,10 @@ public:
virtual char *_readFile(const String &path, int *length) {
return _extension->_readFile(path, length);
}
size_t getUsedMemory() {
return _usedMemory;
}
private:
SpineExtension* _extension;
@ -109,6 +119,7 @@ private:
size_t _allocations;
size_t _reallocations;
size_t _frees;
size_t _usedMemory;
};
}

View File

@ -38,6 +38,8 @@
#include <spine/ContainerUtil.h>
#include <stdint.h>
using namespace spine;
Animation::Animation(const String &name, Vector<Timeline *> &timelines, float duration) :

View File

@ -36,11 +36,11 @@
using namespace spine;
void *SpineObject::operator new(size_t sz) {
return SpineExtension::calloc<SpineObject>(sz, __FILE__, __LINE__);
return SpineExtension::getInstance()->_calloc(sz, __FILE__, __LINE__);
}
void *SpineObject::operator new(size_t sz, const char *file, int line) {
return SpineExtension::calloc<SpineObject>(sz, file, line);
return SpineExtension::getInstance()->_calloc(sz, file, line);
}
void *SpineObject::operator new(size_t sz, void *ptr) {