mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
Merge pull request #257 from jvasti/master
Cocos2d-iphone v.3.1 support
This commit is contained in:
commit
50da55bcde
@ -51,12 +51,12 @@
|
|||||||
43F7FF661927F91900CA4038 /* SkinnedMeshAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF4E1927F91900CA4038 /* SkinnedMeshAttachment.c */; };
|
43F7FF661927F91900CA4038 /* SkinnedMeshAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF4E1927F91900CA4038 /* SkinnedMeshAttachment.c */; };
|
||||||
43F7FF671927F91900CA4038 /* Slot.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF4F1927F91900CA4038 /* Slot.c */; };
|
43F7FF671927F91900CA4038 /* Slot.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF4F1927F91900CA4038 /* Slot.c */; };
|
||||||
43F7FF681927F91900CA4038 /* SlotData.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF501927F91900CA4038 /* SlotData.c */; };
|
43F7FF681927F91900CA4038 /* SlotData.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF501927F91900CA4038 /* SlotData.c */; };
|
||||||
43F7FF871927F94800CA4038 /* PolygonBatch.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF821927F94800CA4038 /* PolygonBatch.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
|
||||||
43F7FF881927F94800CA4038 /* SkeletonAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF841927F94800CA4038 /* SkeletonAnimation.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
43F7FF881927F94800CA4038 /* SkeletonAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF841927F94800CA4038 /* SkeletonAnimation.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
||||||
43F7FF891927F94800CA4038 /* SkeletonRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF861927F94800CA4038 /* SkeletonRenderer.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
43F7FF891927F94800CA4038 /* SkeletonRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF861927F94800CA4038 /* SkeletonRenderer.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
||||||
43F7FF8E1927F96700CA4038 /* GoblinsExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF8B1927F96700CA4038 /* GoblinsExample.m */; };
|
43F7FF8E1927F96700CA4038 /* GoblinsExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF8B1927F96700CA4038 /* GoblinsExample.m */; };
|
||||||
43F7FF8F1927F96700CA4038 /* SpineboyExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF8D1927F96700CA4038 /* SpineboyExample.m */; };
|
43F7FF8F1927F96700CA4038 /* SpineboyExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF8D1927F96700CA4038 /* SpineboyExample.m */; };
|
||||||
652107961895250000B1FF07 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 652107951895250000B1FF07 /* CoreText.framework */; };
|
652107961895250000B1FF07 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 652107951895250000B1FF07 /* CoreText.framework */; };
|
||||||
|
83F1A0EF1986955A001F6B44 /* GLKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83F1A0EE1986955A001F6B44 /* GLKit.framework */; };
|
||||||
9A5D2499170A94DA0030D4DD /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A5D2498170A94DA0030D4DD /* QuartzCore.framework */; };
|
9A5D2499170A94DA0030D4DD /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A5D2498170A94DA0030D4DD /* QuartzCore.framework */; };
|
||||||
9A5D249B170A94DA0030D4DD /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A5D249A170A94DA0030D4DD /* OpenGLES.framework */; };
|
9A5D249B170A94DA0030D4DD /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A5D249A170A94DA0030D4DD /* OpenGLES.framework */; };
|
||||||
9A5D249D170A94DA0030D4DD /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A5D249C170A94DA0030D4DD /* OpenAL.framework */; };
|
9A5D249D170A94DA0030D4DD /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A5D249C170A94DA0030D4DD /* OpenAL.framework */; };
|
||||||
@ -153,8 +153,6 @@
|
|||||||
43F7FF7E1927F92500CA4038 /* Slot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Slot.h; path = "../../spine-c/include/spine/Slot.h"; sourceTree = "<group>"; };
|
43F7FF7E1927F92500CA4038 /* Slot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Slot.h; path = "../../spine-c/include/spine/Slot.h"; sourceTree = "<group>"; };
|
||||||
43F7FF7F1927F92500CA4038 /* SlotData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SlotData.h; path = "../../spine-c/include/spine/SlotData.h"; sourceTree = "<group>"; };
|
43F7FF7F1927F92500CA4038 /* SlotData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SlotData.h; path = "../../spine-c/include/spine/SlotData.h"; sourceTree = "<group>"; };
|
||||||
43F7FF801927F92500CA4038 /* spine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = spine.h; path = "../../spine-c/include/spine/spine.h"; sourceTree = "<group>"; };
|
43F7FF801927F92500CA4038 /* spine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = spine.h; path = "../../spine-c/include/spine/spine.h"; sourceTree = "<group>"; };
|
||||||
43F7FF811927F94800CA4038 /* PolygonBatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PolygonBatch.h; path = src/spine/PolygonBatch.h; sourceTree = "<group>"; };
|
|
||||||
43F7FF821927F94800CA4038 /* PolygonBatch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PolygonBatch.m; path = src/spine/PolygonBatch.m; sourceTree = "<group>"; };
|
|
||||||
43F7FF831927F94800CA4038 /* SkeletonAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonAnimation.h; path = src/spine/SkeletonAnimation.h; sourceTree = "<group>"; };
|
43F7FF831927F94800CA4038 /* SkeletonAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonAnimation.h; path = src/spine/SkeletonAnimation.h; sourceTree = "<group>"; };
|
||||||
43F7FF841927F94800CA4038 /* SkeletonAnimation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SkeletonAnimation.m; path = src/spine/SkeletonAnimation.m; sourceTree = "<group>"; };
|
43F7FF841927F94800CA4038 /* SkeletonAnimation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SkeletonAnimation.m; path = src/spine/SkeletonAnimation.m; sourceTree = "<group>"; };
|
||||||
43F7FF851927F94800CA4038 /* SkeletonRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonRenderer.h; path = src/spine/SkeletonRenderer.h; sourceTree = "<group>"; };
|
43F7FF851927F94800CA4038 /* SkeletonRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonRenderer.h; path = src/spine/SkeletonRenderer.h; sourceTree = "<group>"; };
|
||||||
@ -164,6 +162,7 @@
|
|||||||
43F7FF8C1927F96700CA4038 /* SpineboyExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SpineboyExample.h; path = example/SpineboyExample.h; sourceTree = "<group>"; };
|
43F7FF8C1927F96700CA4038 /* SpineboyExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SpineboyExample.h; path = example/SpineboyExample.h; sourceTree = "<group>"; };
|
||||||
43F7FF8D1927F96700CA4038 /* SpineboyExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SpineboyExample.m; path = example/SpineboyExample.m; sourceTree = "<group>"; };
|
43F7FF8D1927F96700CA4038 /* SpineboyExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SpineboyExample.m; path = example/SpineboyExample.m; sourceTree = "<group>"; };
|
||||||
652107951895250000B1FF07 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; };
|
652107951895250000B1FF07 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; };
|
||||||
|
83F1A0EE1986955A001F6B44 /* GLKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLKit.framework; path = System/Library/Frameworks/GLKit.framework; sourceTree = SDKROOT; };
|
||||||
9A5D2495170A94DA0030D4DD /* SpineExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SpineExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
9A5D2495170A94DA0030D4DD /* SpineExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SpineExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
9A5D2498170A94DA0030D4DD /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
|
9A5D2498170A94DA0030D4DD /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
|
||||||
9A5D249A170A94DA0030D4DD /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
|
9A5D249A170A94DA0030D4DD /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
|
||||||
@ -182,6 +181,7 @@
|
|||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
83F1A0EF1986955A001F6B44 /* GLKit.framework in Frameworks */,
|
||||||
A28E1F0C192926C500D16B23 /* libcocos2d.a in Frameworks */,
|
A28E1F0C192926C500D16B23 /* libcocos2d.a in Frameworks */,
|
||||||
652107961895250000B1FF07 /* CoreText.framework in Frameworks */,
|
652107961895250000B1FF07 /* CoreText.framework in Frameworks */,
|
||||||
9A5D2499170A94DA0030D4DD /* QuartzCore.framework in Frameworks */,
|
9A5D2499170A94DA0030D4DD /* QuartzCore.framework in Frameworks */,
|
||||||
@ -275,8 +275,6 @@
|
|||||||
43C32823170B0BC7004A9460 /* spine-cocos2d-iphone */ = {
|
43C32823170B0BC7004A9460 /* spine-cocos2d-iphone */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
43F7FF811927F94800CA4038 /* PolygonBatch.h */,
|
|
||||||
43F7FF821927F94800CA4038 /* PolygonBatch.m */,
|
|
||||||
43F7FF831927F94800CA4038 /* SkeletonAnimation.h */,
|
43F7FF831927F94800CA4038 /* SkeletonAnimation.h */,
|
||||||
43F7FF841927F94800CA4038 /* SkeletonAnimation.m */,
|
43F7FF841927F94800CA4038 /* SkeletonAnimation.m */,
|
||||||
43F7FF851927F94800CA4038 /* SkeletonRenderer.h */,
|
43F7FF851927F94800CA4038 /* SkeletonRenderer.h */,
|
||||||
@ -342,6 +340,7 @@
|
|||||||
9A5D2497170A94DA0030D4DD /* Frameworks */ = {
|
9A5D2497170A94DA0030D4DD /* Frameworks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
83F1A0EE1986955A001F6B44 /* GLKit.framework */,
|
||||||
652107951895250000B1FF07 /* CoreText.framework */,
|
652107951895250000B1FF07 /* CoreText.framework */,
|
||||||
9A5D2498170A94DA0030D4DD /* QuartzCore.framework */,
|
9A5D2498170A94DA0030D4DD /* QuartzCore.framework */,
|
||||||
9A5D249A170A94DA0030D4DD /* OpenGLES.framework */,
|
9A5D249A170A94DA0030D4DD /* OpenGLES.framework */,
|
||||||
@ -494,7 +493,6 @@
|
|||||||
43F7FF661927F91900CA4038 /* SkinnedMeshAttachment.c in Sources */,
|
43F7FF661927F91900CA4038 /* SkinnedMeshAttachment.c in Sources */,
|
||||||
43F7FF671927F91900CA4038 /* Slot.c in Sources */,
|
43F7FF671927F91900CA4038 /* Slot.c in Sources */,
|
||||||
43F7FF681927F91900CA4038 /* SlotData.c in Sources */,
|
43F7FF681927F91900CA4038 /* SlotData.c in Sources */,
|
||||||
43F7FF871927F94800CA4038 /* PolygonBatch.m in Sources */,
|
|
||||||
43F7FF881927F94800CA4038 /* SkeletonAnimation.m in Sources */,
|
43F7FF881927F94800CA4038 /* SkeletonAnimation.m in Sources */,
|
||||||
43F7FF891927F94800CA4038 /* SkeletonRenderer.m in Sources */,
|
43F7FF891927F94800CA4038 /* SkeletonRenderer.m in Sources */,
|
||||||
43F7FF8E1927F96700CA4038 /* GoblinsExample.m in Sources */,
|
43F7FF8E1927F96700CA4038 /* GoblinsExample.m in Sources */,
|
||||||
|
|||||||
@ -40,7 +40,6 @@
|
|||||||
43F7FD861927C31700CA4038 /* SkinnedMeshAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD6E1927C31700CA4038 /* SkinnedMeshAttachment.c */; };
|
43F7FD861927C31700CA4038 /* SkinnedMeshAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD6E1927C31700CA4038 /* SkinnedMeshAttachment.c */; };
|
||||||
43F7FD871927C31700CA4038 /* Slot.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD6F1927C31700CA4038 /* Slot.c */; };
|
43F7FD871927C31700CA4038 /* Slot.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD6F1927C31700CA4038 /* Slot.c */; };
|
||||||
43F7FD881927C31700CA4038 /* SlotData.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD701927C31700CA4038 /* SlotData.c */; };
|
43F7FD881927C31700CA4038 /* SlotData.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD701927C31700CA4038 /* SlotData.c */; };
|
||||||
43F7FDA71927C33C00CA4038 /* PolygonBatch.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FDA21927C33C00CA4038 /* PolygonBatch.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
|
||||||
43F7FDA81927C33C00CA4038 /* SkeletonAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FDA41927C33C00CA4038 /* SkeletonAnimation.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
43F7FDA81927C33C00CA4038 /* SkeletonAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FDA41927C33C00CA4038 /* SkeletonAnimation.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
||||||
43F7FDA91927C33C00CA4038 /* SkeletonRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FDA61927C33C00CA4038 /* SkeletonRenderer.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
43F7FDA91927C33C00CA4038 /* SkeletonRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FDA61927C33C00CA4038 /* SkeletonRenderer.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
||||||
43F7FDAC1927C34600CA4038 /* SpineboyExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FDAB1927C34600CA4038 /* SpineboyExample.m */; };
|
43F7FDAC1927C34600CA4038 /* SpineboyExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FDAB1927C34600CA4038 /* SpineboyExample.m */; };
|
||||||
@ -48,6 +47,7 @@
|
|||||||
43F7FDB11927C35600CA4038 /* goblins-ffd.json in Resources */ = {isa = PBXBuildFile; fileRef = 43F7FDAE1927C35600CA4038 /* goblins-ffd.json */; };
|
43F7FDB11927C35600CA4038 /* goblins-ffd.json in Resources */ = {isa = PBXBuildFile; fileRef = 43F7FDAE1927C35600CA4038 /* goblins-ffd.json */; };
|
||||||
43F7FDB21927C35600CA4038 /* goblins-ffd.png in Resources */ = {isa = PBXBuildFile; fileRef = 43F7FDAF1927C35600CA4038 /* goblins-ffd.png */; };
|
43F7FDB21927C35600CA4038 /* goblins-ffd.png in Resources */ = {isa = PBXBuildFile; fileRef = 43F7FDAF1927C35600CA4038 /* goblins-ffd.png */; };
|
||||||
43F7FDB51927D04200CA4038 /* GoblinsExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FDB41927D04200CA4038 /* GoblinsExample.m */; };
|
43F7FDB51927D04200CA4038 /* GoblinsExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FDB41927D04200CA4038 /* GoblinsExample.m */; };
|
||||||
|
83F1A0E319868B46001F6B44 /* GLKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83F1A0E219868B46001F6B44 /* GLKit.framework */; };
|
||||||
A2BD1E68192A41C100405470 /* libcocos2d.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A2BD1E63192A417300405470 /* libcocos2d.a */; };
|
A2BD1E68192A41C100405470 /* libcocos2d.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A2BD1E63192A417300405470 /* libcocos2d.a */; };
|
||||||
A2BD1E73192A47A000405470 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2BD1E6C192A47A000405470 /* AVFoundation.framework */; };
|
A2BD1E73192A47A000405470 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2BD1E6C192A47A000405470 /* AVFoundation.framework */; };
|
||||||
A2BD1E74192A47A000405470 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2BD1E6D192A47A000405470 /* QuartzCore.framework */; };
|
A2BD1E74192A47A000405470 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2BD1E6D192A47A000405470 /* QuartzCore.framework */; };
|
||||||
@ -66,13 +66,6 @@
|
|||||||
remoteGlobalIDString = E01E663D121CA00A001A484F;
|
remoteGlobalIDString = E01E663D121CA00A001A484F;
|
||||||
remoteInfo = cocos2d;
|
remoteInfo = cocos2d;
|
||||||
};
|
};
|
||||||
A2BD1E64192A417300405470 /* PBXContainerItemProxy */ = {
|
|
||||||
isa = PBXContainerItemProxy;
|
|
||||||
containerPortal = A2BD1E5C192A417300405470 /* cocos2d-osx.xcodeproj */;
|
|
||||||
proxyType = 2;
|
|
||||||
remoteGlobalIDString = A06430E713C1414300CC5554;
|
|
||||||
remoteInfo = kazmath;
|
|
||||||
};
|
|
||||||
A2BD1E66192A417300405470 /* PBXContainerItemProxy */ = {
|
A2BD1E66192A417300405470 /* PBXContainerItemProxy */ = {
|
||||||
isa = PBXContainerItemProxy;
|
isa = PBXContainerItemProxy;
|
||||||
containerPortal = A2BD1E5C192A417300405470 /* cocos2d-osx.xcodeproj */;
|
containerPortal = A2BD1E5C192A417300405470 /* cocos2d-osx.xcodeproj */;
|
||||||
@ -146,8 +139,6 @@
|
|||||||
43F7FD9E1927C32800CA4038 /* Slot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Slot.h; path = "../../spine-c/include/spine/Slot.h"; sourceTree = "<group>"; };
|
43F7FD9E1927C32800CA4038 /* Slot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Slot.h; path = "../../spine-c/include/spine/Slot.h"; sourceTree = "<group>"; };
|
||||||
43F7FD9F1927C32800CA4038 /* SlotData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SlotData.h; path = "../../spine-c/include/spine/SlotData.h"; sourceTree = "<group>"; };
|
43F7FD9F1927C32800CA4038 /* SlotData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SlotData.h; path = "../../spine-c/include/spine/SlotData.h"; sourceTree = "<group>"; };
|
||||||
43F7FDA01927C32800CA4038 /* spine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = spine.h; path = "../../spine-c/include/spine/spine.h"; sourceTree = "<group>"; };
|
43F7FDA01927C32800CA4038 /* spine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = spine.h; path = "../../spine-c/include/spine/spine.h"; sourceTree = "<group>"; };
|
||||||
43F7FDA11927C33C00CA4038 /* PolygonBatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PolygonBatch.h; path = src/spine/PolygonBatch.h; sourceTree = "<group>"; };
|
|
||||||
43F7FDA21927C33C00CA4038 /* PolygonBatch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PolygonBatch.m; path = src/spine/PolygonBatch.m; sourceTree = "<group>"; };
|
|
||||||
43F7FDA31927C33C00CA4038 /* SkeletonAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonAnimation.h; path = src/spine/SkeletonAnimation.h; sourceTree = "<group>"; };
|
43F7FDA31927C33C00CA4038 /* SkeletonAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonAnimation.h; path = src/spine/SkeletonAnimation.h; sourceTree = "<group>"; };
|
||||||
43F7FDA41927C33C00CA4038 /* SkeletonAnimation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SkeletonAnimation.m; path = src/spine/SkeletonAnimation.m; sourceTree = "<group>"; };
|
43F7FDA41927C33C00CA4038 /* SkeletonAnimation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SkeletonAnimation.m; path = src/spine/SkeletonAnimation.m; sourceTree = "<group>"; };
|
||||||
43F7FDA51927C33C00CA4038 /* SkeletonRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonRenderer.h; path = src/spine/SkeletonRenderer.h; sourceTree = "<group>"; };
|
43F7FDA51927C33C00CA4038 /* SkeletonRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonRenderer.h; path = src/spine/SkeletonRenderer.h; sourceTree = "<group>"; };
|
||||||
@ -159,6 +150,7 @@
|
|||||||
43F7FDAF1927C35600CA4038 /* goblins-ffd.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "goblins-ffd.png"; sourceTree = "<group>"; };
|
43F7FDAF1927C35600CA4038 /* goblins-ffd.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "goblins-ffd.png"; sourceTree = "<group>"; };
|
||||||
43F7FDB31927D04200CA4038 /* GoblinsExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GoblinsExample.h; sourceTree = "<group>"; };
|
43F7FDB31927D04200CA4038 /* GoblinsExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GoblinsExample.h; sourceTree = "<group>"; };
|
||||||
43F7FDB41927D04200CA4038 /* GoblinsExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GoblinsExample.m; sourceTree = "<group>"; };
|
43F7FDB41927D04200CA4038 /* GoblinsExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GoblinsExample.m; sourceTree = "<group>"; };
|
||||||
|
83F1A0E219868B46001F6B44 /* GLKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLKit.framework; path = System/Library/Frameworks/GLKit.framework; sourceTree = SDKROOT; };
|
||||||
A2BD1E5C192A417300405470 /* cocos2d-osx.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "cocos2d-osx.xcodeproj"; path = "cocos2d/cocos2d-osx.xcodeproj"; sourceTree = SOURCE_ROOT; };
|
A2BD1E5C192A417300405470 /* cocos2d-osx.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "cocos2d-osx.xcodeproj"; path = "cocos2d/cocos2d-osx.xcodeproj"; sourceTree = SOURCE_ROOT; };
|
||||||
A2BD1E6C192A47A000405470 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
|
A2BD1E6C192A47A000405470 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
|
||||||
A2BD1E6D192A47A000405470 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
|
A2BD1E6D192A47A000405470 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
|
||||||
@ -174,6 +166,7 @@
|
|||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
83F1A0E319868B46001F6B44 /* GLKit.framework in Frameworks */,
|
||||||
A2BD1E78192A47A000405470 /* AppKit.framework in Frameworks */,
|
A2BD1E78192A47A000405470 /* AppKit.framework in Frameworks */,
|
||||||
A2BD1E73192A47A000405470 /* AVFoundation.framework in Frameworks */,
|
A2BD1E73192A47A000405470 /* AVFoundation.framework in Frameworks */,
|
||||||
A2BD1E75192A47A000405470 /* OpenGL.framework in Frameworks */,
|
A2BD1E75192A47A000405470 /* OpenGL.framework in Frameworks */,
|
||||||
@ -211,6 +204,7 @@
|
|||||||
4319B51616FF9B2600C1D7A9 /* Frameworks */ = {
|
4319B51616FF9B2600C1D7A9 /* Frameworks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
83F1A0E219868B46001F6B44 /* GLKit.framework */,
|
||||||
A2BD1E6C192A47A000405470 /* AVFoundation.framework */,
|
A2BD1E6C192A47A000405470 /* AVFoundation.framework */,
|
||||||
A2BD1E6D192A47A000405470 /* QuartzCore.framework */,
|
A2BD1E6D192A47A000405470 /* QuartzCore.framework */,
|
||||||
A2BD1E6E192A47A000405470 /* OpenGL.framework */,
|
A2BD1E6E192A47A000405470 /* OpenGL.framework */,
|
||||||
@ -322,8 +316,6 @@
|
|||||||
4319B8931701168F00C1D7A9 /* spine-cocos2d-iphone */ = {
|
4319B8931701168F00C1D7A9 /* spine-cocos2d-iphone */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
43F7FDA11927C33C00CA4038 /* PolygonBatch.h */,
|
|
||||||
43F7FDA21927C33C00CA4038 /* PolygonBatch.m */,
|
|
||||||
43F7FDA31927C33C00CA4038 /* SkeletonAnimation.h */,
|
43F7FDA31927C33C00CA4038 /* SkeletonAnimation.h */,
|
||||||
43F7FDA41927C33C00CA4038 /* SkeletonAnimation.m */,
|
43F7FDA41927C33C00CA4038 /* SkeletonAnimation.m */,
|
||||||
43F7FDA51927C33C00CA4038 /* SkeletonRenderer.h */,
|
43F7FDA51927C33C00CA4038 /* SkeletonRenderer.h */,
|
||||||
@ -359,7 +351,6 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
A2BD1E63192A417300405470 /* libcocos2d.a */,
|
A2BD1E63192A417300405470 /* libcocos2d.a */,
|
||||||
A2BD1E65192A417300405470 /* libkazmath.a */,
|
|
||||||
A2BD1E67192A417300405470 /* libObjectiveChipmunk.a */,
|
A2BD1E67192A417300405470 /* libObjectiveChipmunk.a */,
|
||||||
);
|
);
|
||||||
name = Products;
|
name = Products;
|
||||||
@ -426,13 +417,6 @@
|
|||||||
remoteRef = A2BD1E62192A417300405470 /* PBXContainerItemProxy */;
|
remoteRef = A2BD1E62192A417300405470 /* PBXContainerItemProxy */;
|
||||||
sourceTree = BUILT_PRODUCTS_DIR;
|
sourceTree = BUILT_PRODUCTS_DIR;
|
||||||
};
|
};
|
||||||
A2BD1E65192A417300405470 /* libkazmath.a */ = {
|
|
||||||
isa = PBXReferenceProxy;
|
|
||||||
fileType = archive.ar;
|
|
||||||
path = libkazmath.a;
|
|
||||||
remoteRef = A2BD1E64192A417300405470 /* PBXContainerItemProxy */;
|
|
||||||
sourceTree = BUILT_PRODUCTS_DIR;
|
|
||||||
};
|
|
||||||
A2BD1E67192A417300405470 /* libObjectiveChipmunk.a */ = {
|
A2BD1E67192A417300405470 /* libObjectiveChipmunk.a */ = {
|
||||||
isa = PBXReferenceProxy;
|
isa = PBXReferenceProxy;
|
||||||
fileType = archive.ar;
|
fileType = archive.ar;
|
||||||
@ -493,7 +477,6 @@
|
|||||||
43F7FD861927C31700CA4038 /* SkinnedMeshAttachment.c in Sources */,
|
43F7FD861927C31700CA4038 /* SkinnedMeshAttachment.c in Sources */,
|
||||||
43F7FD871927C31700CA4038 /* Slot.c in Sources */,
|
43F7FD871927C31700CA4038 /* Slot.c in Sources */,
|
||||||
43F7FD881927C31700CA4038 /* SlotData.c in Sources */,
|
43F7FD881927C31700CA4038 /* SlotData.c in Sources */,
|
||||||
43F7FDA71927C33C00CA4038 /* PolygonBatch.m in Sources */,
|
|
||||||
43F7FDA81927C33C00CA4038 /* SkeletonAnimation.m in Sources */,
|
43F7FDA81927C33C00CA4038 /* SkeletonAnimation.m in Sources */,
|
||||||
43F7FDA91927C33C00CA4038 /* SkeletonRenderer.m in Sources */,
|
43F7FDA91927C33C00CA4038 /* SkeletonRenderer.m in Sources */,
|
||||||
43F7FDAC1927C34600CA4038 /* SpineboyExample.m in Sources */,
|
43F7FDAC1927C34600CA4038 /* SpineboyExample.m in Sources */,
|
||||||
|
|||||||
@ -1,51 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* Spine Runtimes Software License
|
|
||||||
* Version 2.1
|
|
||||||
*
|
|
||||||
* Copyright (c) 2013, Esoteric Software
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* You are granted a perpetual, non-exclusive, non-sublicensable and
|
|
||||||
* non-transferable license to install, execute and perform the Spine Runtimes
|
|
||||||
* Software (the "Software") solely for internal use. Without the written
|
|
||||||
* permission of Esoteric Software (typically granted by licensing Spine), you
|
|
||||||
* may not (a) modify, translate, adapt or otherwise create derivative works,
|
|
||||||
* improvements of the Software or develop new applications using the Software
|
|
||||||
* or (b) remove, delete, alter or obscure any trademarks or any copyright,
|
|
||||||
* trademark, patent or other intellectual property or proprietary rights
|
|
||||||
* notices on or in the Software, including any copy thereof. Redistributions
|
|
||||||
* in binary or source form must include this license and terms.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
|
|
||||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
|
||||||
* EVENT SHALL ESOTERIC SOFTARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
|
||||||
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
||||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
||||||
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
||||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import <spine/spine-cocos2d-iphone.h>
|
|
||||||
|
|
||||||
@interface spPolygonBatch : NSObject {
|
|
||||||
int _capacity;
|
|
||||||
ccV2F_C4B_T2F* _vertices;
|
|
||||||
int _verticesCount;
|
|
||||||
GLushort* _triangles;
|
|
||||||
int _trianglesCount;
|
|
||||||
CCTexture* _texture;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (id) createWithCapacity:(int)capacity;
|
|
||||||
|
|
||||||
- (id) initWithCapacity:(int)capacity;
|
|
||||||
|
|
||||||
- (void) add:(CCTexture*)texture vertices:(const float*)vertices uvs:(const float*)uvs
|
|
||||||
verticesCount:(int)verticesCount triangles:(const int*)triangles trianglesCount:(int)trianglesCount
|
|
||||||
color:(ccColor4B*)color;
|
|
||||||
- (void) flush;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@ -1,106 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* Spine Runtimes Software License
|
|
||||||
* Version 2.1
|
|
||||||
*
|
|
||||||
* Copyright (c) 2013, Esoteric Software
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* You are granted a perpetual, non-exclusive, non-sublicensable and
|
|
||||||
* non-transferable license to install, execute and perform the Spine Runtimes
|
|
||||||
* Software (the "Software") solely for internal use. Without the written
|
|
||||||
* permission of Esoteric Software (typically granted by licensing Spine), you
|
|
||||||
* may not (a) modify, translate, adapt or otherwise create derivative works,
|
|
||||||
* improvements of the Software or develop new applications using the Software
|
|
||||||
* or (b) remove, delete, alter or obscure any trademarks or any copyright,
|
|
||||||
* trademark, patent or other intellectual property or proprietary rights
|
|
||||||
* notices on or in the Software, including any copy thereof. Redistributions
|
|
||||||
* in binary or source form must include this license and terms.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
|
|
||||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
|
||||||
* EVENT SHALL ESOTERIC SOFTARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
|
||||||
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
||||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
||||||
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
||||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
#import <spine/PolygonBatch.h>
|
|
||||||
#import <spine/spine-cocos2d-iphone.h>
|
|
||||||
#import <spine/extension.h>
|
|
||||||
#import "CCTexture_Private.h"
|
|
||||||
|
|
||||||
@implementation spPolygonBatch
|
|
||||||
|
|
||||||
+ (id) createWithCapacity:(int)capacity {
|
|
||||||
return [[(spPolygonBatch*)[self alloc] initWithCapacity:capacity] autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id) initWithCapacity:(int)capacity {
|
|
||||||
// 32767 is max index, so 32767 / 3 - (32767 / 3 % 3) = 10920.
|
|
||||||
NSAssert(capacity <= 10920, @"capacity cannot be > 10920");
|
|
||||||
NSAssert(capacity >= 0, @"capacity cannot be < 0");
|
|
||||||
|
|
||||||
self = [super init];
|
|
||||||
if (!self) return nil;
|
|
||||||
|
|
||||||
_capacity = capacity;
|
|
||||||
_vertices = MALLOC(ccV2F_C4B_T2F, capacity);
|
|
||||||
_triangles = MALLOC(GLushort, capacity * 3);
|
|
||||||
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) dealloc {
|
|
||||||
FREE(_vertices);
|
|
||||||
FREE(_triangles);
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) add:(CCTexture*)addTexture vertices:(const float*)addVertices uvs:(const float*)uvs
|
|
||||||
verticesCount:(int)addVerticesCount triangles:(const int*)addTriangles trianglesCount:(int)addTrianglesCount
|
|
||||||
color:(ccColor4B*)color {
|
|
||||||
|
|
||||||
if (
|
|
||||||
addTexture != _texture
|
|
||||||
|| _verticesCount + (addVerticesCount >> 1) > _capacity
|
|
||||||
|| _trianglesCount + addTrianglesCount > _capacity * 3) {
|
|
||||||
[self flush];
|
|
||||||
_texture = addTexture;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < addTrianglesCount; ++i, ++_trianglesCount)
|
|
||||||
_triangles[_trianglesCount] = addTriangles[i] + _verticesCount;
|
|
||||||
|
|
||||||
for (int i = 0; i < addVerticesCount; i += 2, ++_verticesCount) {
|
|
||||||
ccV2F_C4B_T2F* vertex = _vertices + _verticesCount;
|
|
||||||
vertex->vertices.x = addVertices[i];
|
|
||||||
vertex->vertices.y = addVertices[i + 1];
|
|
||||||
vertex->colors = *color;
|
|
||||||
vertex->texCoords.u = uvs[i];
|
|
||||||
vertex->texCoords.v = uvs[i + 1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) flush {
|
|
||||||
if (!_verticesCount) return;
|
|
||||||
|
|
||||||
ccGLBindTexture2D(_texture.name);
|
|
||||||
glEnableVertexAttribArray(kCCVertexAttrib_Position);
|
|
||||||
glEnableVertexAttribArray(kCCVertexAttrib_Color);
|
|
||||||
glEnableVertexAttribArray(kCCVertexAttrib_TexCoords);
|
|
||||||
glVertexAttribPointer(kCCVertexAttrib_Position, 2, GL_FLOAT, GL_FALSE, sizeof(ccV2F_C4B_T2F), &_vertices[0].vertices);
|
|
||||||
glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(ccV2F_C4B_T2F), &_vertices[0].colors);
|
|
||||||
glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, sizeof(ccV2F_C4B_T2F), &_vertices[0].texCoords);
|
|
||||||
glDrawElements(GL_TRIANGLES, _trianglesCount, GL_UNSIGNED_SHORT, _triangles);
|
|
||||||
|
|
||||||
_verticesCount = 0;
|
|
||||||
_trianglesCount = 0;
|
|
||||||
|
|
||||||
CHECK_GL_ERROR_DEBUG();
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
5
spine-cocos2d-iphone/3.0/src/spine/SkeletonRenderer.h
Normal file → Executable file
5
spine-cocos2d-iphone/3.0/src/spine/SkeletonRenderer.h
Normal file → Executable file
@ -31,8 +31,6 @@
|
|||||||
#import <spine/spine.h>
|
#import <spine/spine.h>
|
||||||
#import "cocos2d.h"
|
#import "cocos2d.h"
|
||||||
|
|
||||||
@class spPolygonBatch;
|
|
||||||
|
|
||||||
/** Draws a skeleton. */
|
/** Draws a skeleton. */
|
||||||
@interface SkeletonRenderer : CCNode<CCBlendProtocol> {
|
@interface SkeletonRenderer : CCNode<CCBlendProtocol> {
|
||||||
spSkeleton* _skeleton;
|
spSkeleton* _skeleton;
|
||||||
@ -41,10 +39,9 @@
|
|||||||
bool _debugBones;
|
bool _debugBones;
|
||||||
bool _premultipliedAlpha;
|
bool _premultipliedAlpha;
|
||||||
ccBlendFunc _blendFunc;
|
ccBlendFunc _blendFunc;
|
||||||
|
CCDrawNode *_drawNode;
|
||||||
bool _ownsSkeletonData;
|
bool _ownsSkeletonData;
|
||||||
spAtlas* _atlas;
|
spAtlas* _atlas;
|
||||||
spPolygonBatch* batch;
|
|
||||||
float* worldVertices;
|
float* worldVertices;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
74
spine-cocos2d-iphone/3.0/src/spine/SkeletonRenderer.m
Normal file → Executable file
74
spine-cocos2d-iphone/3.0/src/spine/SkeletonRenderer.m
Normal file → Executable file
@ -31,9 +31,8 @@
|
|||||||
#import <spine/SkeletonRenderer.h>
|
#import <spine/SkeletonRenderer.h>
|
||||||
#import <spine/spine-cocos2d-iphone.h>
|
#import <spine/spine-cocos2d-iphone.h>
|
||||||
#import <spine/extension.h>
|
#import <spine/extension.h>
|
||||||
#import <spine/PolygonBatch.h>
|
|
||||||
#import "CCNode_Private.h"
|
#import "CCNode_Private.h"
|
||||||
#import "CCDrawingPrimitives.h"
|
#import "CCDrawNode.h"
|
||||||
|
|
||||||
static const int quadTriangles[6] = {0, 1, 2, 2, 3, 0};
|
static const int quadTriangles[6] = {0, 1, 2, 2, 3, 0};
|
||||||
|
|
||||||
@ -65,16 +64,16 @@ static const int quadTriangles[6] = {0, 1, 2, 2, 3, 0};
|
|||||||
|
|
||||||
worldVertices = MALLOC(float, 1000); // Max number of vertices per mesh.
|
worldVertices = MALLOC(float, 1000); // Max number of vertices per mesh.
|
||||||
|
|
||||||
batch = [[spPolygonBatch createWithCapacity:2000] retain]; // Max number of vertices and triangles per batch.
|
|
||||||
|
|
||||||
_skeleton = spSkeleton_create(skeletonData);
|
_skeleton = spSkeleton_create(skeletonData);
|
||||||
_rootBone = _skeleton->bones[0];
|
_rootBone = _skeleton->bones[0];
|
||||||
|
|
||||||
_blendFunc.src = GL_ONE;
|
_blendFunc.src = GL_ONE;
|
||||||
_blendFunc.dst = GL_ONE_MINUS_SRC_ALPHA;
|
_blendFunc.dst = GL_ONE_MINUS_SRC_ALPHA;
|
||||||
[self setOpacityModifyRGB:YES];
|
_drawNode = [[CCDrawNode alloc] init];
|
||||||
|
[_drawNode setBlendMode: [CCBlendMode premultipliedAlphaMode]];
|
||||||
|
[self addChild:_drawNode];
|
||||||
|
|
||||||
[self setShaderProgram:[[CCShaderCache sharedShaderCache] programForKey:kCCShader_PositionTextureColor]];
|
[self setShader:[CCShader positionTextureColorShader]];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (id) initWithData:(spSkeletonData*)skeletonData ownsSkeletonData:(bool)ownsSkeletonData {
|
- (id) initWithData:(spSkeletonData*)skeletonData ownsSkeletonData:(bool)ownsSkeletonData {
|
||||||
@ -125,17 +124,15 @@ static const int quadTriangles[6] = {0, 1, 2, 2, 3, 0};
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (void) dealloc {
|
- (void) dealloc {
|
||||||
|
|
||||||
if (_ownsSkeletonData) spSkeletonData_dispose(_skeleton->data);
|
if (_ownsSkeletonData) spSkeletonData_dispose(_skeleton->data);
|
||||||
if (_atlas) spAtlas_dispose(_atlas);
|
if (_atlas) spAtlas_dispose(_atlas);
|
||||||
spSkeleton_dispose(_skeleton);
|
spSkeleton_dispose(_skeleton);
|
||||||
[batch release];
|
|
||||||
FREE(worldVertices);
|
FREE(worldVertices);
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) draw {
|
-(void)draw:(CCRenderer *)renderer transform:(const GLKMatrix4 *)transform {
|
||||||
CC_NODE_DRAW_SETUP();
|
|
||||||
ccGLBindVAO(0);
|
|
||||||
|
|
||||||
CCColor* nodeColor = self.color;
|
CCColor* nodeColor = self.color;
|
||||||
_skeleton->r = nodeColor.red;
|
_skeleton->r = nodeColor.red;
|
||||||
@ -151,6 +148,7 @@ static const int quadTriangles[6] = {0, 1, 2, 2, 3, 0};
|
|||||||
int trianglesCount = 0;
|
int trianglesCount = 0;
|
||||||
float r = 0, g = 0, b = 0, a = 0;
|
float r = 0, g = 0, b = 0, a = 0;
|
||||||
for (int i = 0, n = _skeleton->slotCount; i < n; i++) {
|
for (int i = 0, n = _skeleton->slotCount; i < n; i++) {
|
||||||
|
|
||||||
spSlot* slot = _skeleton->drawOrder[i];
|
spSlot* slot = _skeleton->drawOrder[i];
|
||||||
if (!slot->attachment) continue;
|
if (!slot->attachment) continue;
|
||||||
CCTexture *texture = 0;
|
CCTexture *texture = 0;
|
||||||
@ -170,6 +168,7 @@ static const int quadTriangles[6] = {0, 1, 2, 2, 3, 0};
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SP_ATTACHMENT_MESH: {
|
case SP_ATTACHMENT_MESH: {
|
||||||
|
|
||||||
spMeshAttachment* attachment = (spMeshAttachment*)slot->attachment;
|
spMeshAttachment* attachment = (spMeshAttachment*)slot->attachment;
|
||||||
spMeshAttachment_computeWorldVertices(attachment, slot->skeleton->x, slot->skeleton->y, slot, worldVertices);
|
spMeshAttachment_computeWorldVertices(attachment, slot->skeleton->x, slot->skeleton->y, slot, worldVertices);
|
||||||
texture = [self getTextureForMesh:attachment];
|
texture = [self getTextureForMesh:attachment];
|
||||||
@ -184,6 +183,7 @@ static const int quadTriangles[6] = {0, 1, 2, 2, 3, 0};
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SP_ATTACHMENT_SKINNED_MESH: {
|
case SP_ATTACHMENT_SKINNED_MESH: {
|
||||||
|
|
||||||
spSkinnedMeshAttachment* attachment = (spSkinnedMeshAttachment*)slot->attachment;
|
spSkinnedMeshAttachment* attachment = (spSkinnedMeshAttachment*)slot->attachment;
|
||||||
spSkinnedMeshAttachment_computeWorldVertices(attachment, slot->skeleton->x, slot->skeleton->y, slot, worldVertices);
|
spSkinnedMeshAttachment_computeWorldVertices(attachment, slot->skeleton->x, slot->skeleton->y, slot, worldVertices);
|
||||||
texture = [self getTextureForSkinnedMesh:attachment];
|
texture = [self getTextureForSkinnedMesh:attachment];
|
||||||
@ -201,8 +201,7 @@ static const int quadTriangles[6] = {0, 1, 2, 2, 3, 0};
|
|||||||
}
|
}
|
||||||
if (texture) {
|
if (texture) {
|
||||||
if (slot->data->additiveBlending != additive) {
|
if (slot->data->additiveBlending != additive) {
|
||||||
[batch flush];
|
[self setBlendMode:[CCBlendMode blendModeWithOptions:@{CCBlendFuncSrcColor: @(_blendFunc.src),CCBlendFuncDstColor: @(slot->data->additiveBlending ? GL_ONE : _blendFunc.dst)}]];
|
||||||
ccGLBlendFunc(_blendFunc.src, slot->data->additiveBlending ? GL_ONE : _blendFunc.dst);
|
|
||||||
additive = slot->data->additiveBlending;
|
additive = slot->data->additiveBlending;
|
||||||
}
|
}
|
||||||
color.a = _skeleton->a * slot->a * a * 255;
|
color.a = _skeleton->a * slot->a * a * 255;
|
||||||
@ -210,16 +209,29 @@ static const int quadTriangles[6] = {0, 1, 2, 2, 3, 0};
|
|||||||
color.r = _skeleton->r * slot->r * r * multiplier;
|
color.r = _skeleton->r * slot->r * r * multiplier;
|
||||||
color.g = _skeleton->g * slot->g * g * multiplier;
|
color.g = _skeleton->g * slot->g * g * multiplier;
|
||||||
color.b = _skeleton->b * slot->b * b * multiplier;
|
color.b = _skeleton->b * slot->b * b * multiplier;
|
||||||
[batch add:texture vertices:worldVertices uvs:uvs verticesCount:verticesCount
|
self.texture = texture;
|
||||||
triangles:triangles trianglesCount:trianglesCount color:&color];
|
CGSize size = texture.contentSize;
|
||||||
|
GLKVector2 center = GLKVector2Make(size.width/2.0, size.height/2.0);
|
||||||
|
GLKVector2 extents = GLKVector2Make(size.width/2.0, size.height/2.0);
|
||||||
|
if(CCRenderCheckVisbility(transform, center, extents)){
|
||||||
|
CCRenderBuffer buffer = [renderer enqueueTriangles:trianglesCount/3 andVertexes:verticesCount withState:self.renderState globalSortOrder:0];
|
||||||
|
for(int i = 0; (i*2) < verticesCount; ++i) {
|
||||||
|
CCVertex vertex;
|
||||||
|
vertex.position = GLKVector4Make(worldVertices[i*2], worldVertices[i*2 + 1], 0.0, 1.0);
|
||||||
|
vertex.color = GLKVector4Make(color.r, color.g, color.b, color.a);
|
||||||
|
vertex.texCoord1 = GLKVector2Make(uvs[i*2], 1 - uvs[(i*2) +1]);
|
||||||
|
CCRenderBufferSetVertex(buffer, i, CCVertexApplyTransform(vertex, transform));
|
||||||
|
}
|
||||||
|
for(int j = 0; j*3 < trianglesCount; ++j) {
|
||||||
|
CCRenderBufferSetTriangle(buffer, j, triangles[j*3], triangles[(j*3) + 1], triangles[(j*3) + 2]);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
[batch flush];
|
|
||||||
|
|
||||||
|
}
|
||||||
|
[_drawNode clear];
|
||||||
if (_debugSlots) {
|
if (_debugSlots) {
|
||||||
// Slots.
|
// Slots.
|
||||||
ccDrawColor4B(0, 0, 255, 255);
|
|
||||||
glLineWidth(1);
|
|
||||||
CGPoint points[4];
|
CGPoint points[4];
|
||||||
for (int i = 0, n = _skeleton->slotCount; i < n; i++) {
|
for (int i = 0, n = _skeleton->slotCount; i < n; i++) {
|
||||||
spSlot* slot = _skeleton->drawOrder[i];
|
spSlot* slot = _skeleton->drawOrder[i];
|
||||||
@ -230,26 +242,24 @@ static const int quadTriangles[6] = {0, 1, 2, 2, 3, 0};
|
|||||||
points[1] = ccp(worldVertices[2], worldVertices[3]);
|
points[1] = ccp(worldVertices[2], worldVertices[3]);
|
||||||
points[2] = ccp(worldVertices[4], worldVertices[5]);
|
points[2] = ccp(worldVertices[4], worldVertices[5]);
|
||||||
points[3] = ccp(worldVertices[6], worldVertices[7]);
|
points[3] = ccp(worldVertices[6], worldVertices[7]);
|
||||||
ccDrawPoly(points, 4, true);
|
[_drawNode drawPolyWithVerts:points count:4 fillColor:[CCColor clearColor] borderWidth:1 borderColor:[CCColor blueColor]];
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (_debugBones) {
|
if (_debugBones) {
|
||||||
// Bone lengths.
|
// Bone lengths.
|
||||||
glLineWidth(2);
|
|
||||||
ccDrawColor4B(255, 0, 0, 255);
|
|
||||||
for (int i = 0, n = _skeleton->boneCount; i < n; i++) {
|
for (int i = 0, n = _skeleton->boneCount; i < n; i++) {
|
||||||
spBone *bone = _skeleton->bones[i];
|
spBone *bone = _skeleton->bones[i];
|
||||||
float x = bone->data->length * bone->m00 + bone->worldX;
|
float x = bone->data->length * bone->m00 + bone->worldX;
|
||||||
float y = bone->data->length * bone->m10 + bone->worldY;
|
float y = bone->data->length * bone->m10 + bone->worldY;
|
||||||
ccDrawLine(ccp(bone->worldX, bone->worldY), ccp(x, y));
|
[_drawNode drawSegmentFrom:ccp(bone->worldX, bone->worldY) to: ccp(x, y)radius:2 color:[CCColor redColor]];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bone origins.
|
// Bone origins.
|
||||||
ccPointSize(4);
|
|
||||||
ccDrawColor4B(0, 0, 255, 255); // Root bone is blue.
|
|
||||||
for (int i = 0, n = _skeleton->boneCount; i < n; i++) {
|
for (int i = 0, n = _skeleton->boneCount; i < n; i++) {
|
||||||
spBone *bone = _skeleton->bones[i];
|
spBone *bone = _skeleton->bones[i];
|
||||||
ccDrawPoint(ccp(bone->worldX, bone->worldY));
|
[_drawNode drawDot:ccp(bone->worldX, bone->worldY) radius:4 color:[CCColor greenColor]];
|
||||||
if (i == 0) ccDrawColor4B(0, 255, 0, 255);
|
if (i == 0) [_drawNode drawDot:ccp(bone->worldX, bone->worldY) radius:4 color:[CCColor blueColor]];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -289,10 +299,10 @@ static const int quadTriangles[6] = {0, 1, 2, 2, 3, 0};
|
|||||||
continue;
|
continue;
|
||||||
for (int ii = 0; ii < verticesCount; ii += 2) {
|
for (int ii = 0; ii < verticesCount; ii += 2) {
|
||||||
float x = worldVertices[ii] * scaleX, y = worldVertices[ii + 1] * scaleY;
|
float x = worldVertices[ii] * scaleX, y = worldVertices[ii + 1] * scaleY;
|
||||||
minX = min(minX, x);
|
minX = fmin(minX, x);
|
||||||
minY = min(minY, y);
|
minY = fmin(minY, y);
|
||||||
maxX = max(maxX, x);
|
maxX = fmax(maxX, x);
|
||||||
maxY = max(maxY, y);
|
maxY = fmax(maxY, y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
minX = self.position.x + minX;
|
minX = self.position.x + minX;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user