* [Corona] Adding ability to load atlas files
* [Corona] Added example of using atlas
# Documentation:
## Lua runtime: `spine.Atlas.parse`
`Atlas.lua` introduces `spine.Atlas.parse(atlasPath, baseDir)` funciton. This function can be use across Lua runtimes to implement their their own image sheet bindings. It will return Array of `Page`s or `nil` if error.
### `Page` properties:
* `name` - filename of the page (`"raptor.png"`)
* `size` - dimmensions of original image (`[1022,1022]`)
* `format` - texture format (`"RGBA8888"`)
* `filter` - filter for texture scalin up and down (`["Linear","Linear"]`)
* `wrap` - wrap modes (`"none"`)
* `regions` - Array of `Region`s on this page
### `Region` properties:
* `name` - region name (`"torso"`)
* `rotate` - is image rotated in texture (`true`)
* `xy` - image frame position on texture (`[610,647]`)
* `size` - image frame size on texture (`[54,91]`)
* `splits` - (optional)
* `pad` - (optional)
* `orig` - original image size (`[54,91]`)
* `offset` - offset if image was trimmed (`[0,0]`)
* `index` - `-1`
## Corona runtime: `spine.GetAtlasSprites`
`spine.lua` introduces `spine.GetAtlasSprites(atlasName, baseDir)`, which returns `Sprites` table. This funciton would parse atlas, locate atlas textures, load them to Corona's image sheets and create convinience bindings and functions. User can use convenience functions, or write own wrappers.
### `Sprites` table
#### Convenience functions:
* `ATLAS_HELPER_createImage` - can be assigned to `skeleton.createImage`
* `ATLAS_HELPER_createMesh` - can be assigned to `skeleton.createMesh`
* `ATLAS_HELPER_setupSkeleton` - use this on skeleton to assing both creation functions (`sprites.setupSkeleton(skeleton)`)
### Region name bindings:
All other elements of `Sprites` table would contain binding `sprites["region_name"] = sheetReference`, where each `sheetReference` contains following elements:
* `frame` - number of frame in image sheet (`42`)
* `region` - reference to `Region` table
* `page` - reference to `Page` table. `Page` table would also get new property - `sheet`, reference to Corona's image sheet where sprites can be accessed.
As result, to create image for `attachment` code would look something like `display.newImage( sprites[attachment.name].page.sheet, sprites[attachment.name].frame )`. For more rubust example see `ATLAS_HELPER_createImage` in `spine-corona/spine.lua`.
# Known Issues:
* Corona would not work with padded/cropped atlases.
* Possible (but unprobable) name collision with region names and `ATLAS_HELPER_*` functions.
- Updated spine-c to 3.2.01, adding shearing and transform constraints plus various bug fixes
- Introduced CMake based system to generated IDE projects for spine-sfml, and download dependencies for all other runtimes
- Updated all spine-c based runtime READMEs with new usage and example instructions
- Moved spine-cocos2d-iphone v2 and spine-cocos2dx v2 to separate branches. These will no longer be updated
- Renamed spine-cocos2d-iphone to spine-cocos2d-iphone
Removed cocos2d-ios v2 Spine runtime. See branch cocos2d-ios-v2 for legacy apps
Moved cocos2d-ios v3 Spine runtime to top-level sphine-cocos2d-iphone directory
Added Visual Studio support to CMake build
Added Linux support for spine-sfml. Do apt-get install sfml-dev as a prerequisit, makes everyone's life easier
Refactored Mac OS X framework detection and linking, added SFML_STATIC define for Win32 build
Removed spine-cocos2dx v2 runtime. See cocos2dx-v2 branch on Github
Moved spine-cocos2dx v3 runtime to root of spine-cocos2dx
spine-c, spine-cocos2d-iphone, spine-cocos2dx, spine-sfml updated to 3.2.00
* Added CMake build for spine-c and spine-sfml
* Removed spine-cocos2dx v2 and spine-cocos2d-iphone v2. See the cocos2dx-v2 and cocos2d-ios-v2 branches if you need these runtimes still
* Added transform constraint rotate, scale, and shear offsets and mixes
* Added spTransformConstraintTimeline
* Added bone shearing
* Added spShearTimeline
* Changed spSkeleton_updateCache
* Changed JSON format, see http://esotericsoftware.com/spine-json-format
Ported 1be89d1c5766fedb91f080a23bffaef6609b86c3 to spine-c
Cleaned up spine-c, removed IDE specific files and unnecessary data/ folder. Use CMake to import into your most beloved IDE
Added spine-cocos2d-iphone to CMake, only downloads cocos2d-objc dependency. Use Xcode project in spine-cocos2d-iphone/ to run examples
Added -std=c98 -pedantic -Wall to spine-c CMake file, fixed up all warnings, fixed up .gitignore
Fixed warnings, replaced calls to stdlib cos/sin/atan2 with macros
New cocos2dx example project, for Windows, Linux and Mac OS X. Doesn't work on Windows/Linux yet
Fixed spine-cocos2dx Visual Studio projects
Reworked cocos2dx dependency resolution
Fixed up src/header paths in CMake files. Dependencies are only downloaded if you build a specific runtime example
Updated spine-sfml README with instructions for Windows
Updated spine-sfml README with instructions for Linux and Mac OS X
Fixed README formatting
More formatting, sorry, can't preview markdown...
More README changes
Renamed spine-cocos2d-iphone to spine-cocos2d-objc, fixed up Xcode project and README
Updated spine-cocos2d-objc README
Added context when exceptions are thrown during attachment and animation parsing.
Added JsonRollback, a tool for converting newer JSON so it can be loaded by an older Spine version.
[Unity] Update BoneFollower
Added coverting linkedmesh to weightedlinkedmesh.
[LUA] AnimationState trackCount bugfixes (#466)
* resolved conflict
* made trackCount keep count, not maximum track index.
Prettier with varargs.
Updated .gitignore to exclude cocos2dx dependencies
Fixed up READMEs of spine-c based runtimes with proper version info. Fixed cocos2d-x CMake build to delete outdated Spine runtime shipped by cocos2d-x
Float32Array.length is read only and will not resize the array. This caused the .length to always be 0 and thus not use ffd in spine.WeightedMeshAttachment.computerWorldVertices(). This proposed fix instead creates a new array when the size has changed.
Bugs:
* ffd animation was ignoring last frame. Lua has 1-based arrays, so last frame is `frames[#frames]`, not `frames[#frames - 1]`
* nil exception when accessing array lenght after it's confirmed nil. First we check if `not vertices` and in next statement we're trying to check for it's length, which causes exception. This code is logically equivalent to code before but avoids checking potentially nil array for length.