mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-04 22:34:53 +08:00
Merge branch '3.8' into 3.9-beta
This commit is contained in:
commit
400d465bb4
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -38,6 +38,8 @@
|
||||
|
||||
#include <spine/ContainerUtil.h>
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
using namespace spine;
|
||||
|
||||
Animation::Animation(const String &name, Vector<Timeline *> &timelines, float duration) :
|
||||
|
||||
@ -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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user