From dfd090d2208ea34ab1a6620a13fdc655aabc7a32 Mon Sep 17 00:00:00 2001 From: NathanSweet Date: Mon, 1 Apr 2013 20:21:07 +0200 Subject: [PATCH] Allow spine-c to be compiled as C++. --- spine-c/src/spine/Animation.c | 8 ++++++++ spine-c/src/spine/Atlas.c | 8 ++++++++ spine-c/src/spine/AtlasAttachmentLoader.c | 8 ++++++++ spine-c/src/spine/Attachment.c | 8 ++++++++ spine-c/src/spine/AttachmentLoader.c | 8 ++++++++ spine-c/src/spine/Bone.c | 8 ++++++++ spine-c/src/spine/BoneData.c | 8 ++++++++ spine-c/src/spine/Json.c | 12 ++++++++++-- spine-c/src/spine/RegionAttachment.c | 8 ++++++++ spine-c/src/spine/Skeleton.c | 8 ++++++++ spine-c/src/spine/SkeletonData.c | 8 ++++++++ spine-c/src/spine/SkeletonJson.c | 22 +++++++++++++++++----- spine-c/src/spine/Skin.c | 8 ++++++++ spine-c/src/spine/Slot.c | 8 ++++++++ spine-c/src/spine/SlotData.c | 8 ++++++++ spine-c/src/spine/extension.c | 8 ++++++++ 16 files changed, 139 insertions(+), 7 deletions(-) diff --git a/spine-c/src/spine/Animation.c b/spine-c/src/spine/Animation.c index bb7b7bfeb..a5cb93acc 100644 --- a/spine-c/src/spine/Animation.c +++ b/spine-c/src/spine/Animation.c @@ -27,6 +27,10 @@ #include #include +#ifdef __cplusplus +namespace spine { +#endif + Animation* Animation_new (int timelineCount) { Animation* self = NEW(Animation); self->timelineCount = timelineCount; @@ -453,3 +457,7 @@ void AttachmentTimeline_setFrame (AttachmentTimeline* self, int frameIndex, floa else self->attachmentNames[frameIndex] = 0; } + +#ifdef __cplusplus +} +#endif diff --git a/spine-c/src/spine/Atlas.c b/spine-c/src/spine/Atlas.c index f13b4d336..525eeb0bd 100644 --- a/spine-c/src/spine/Atlas.c +++ b/spine-c/src/spine/Atlas.c @@ -27,6 +27,10 @@ #include #include +#ifdef __cplusplus +namespace spine { +#endif + void _AtlasPage_init (AtlasPage* self, const char* name) { CONST_CAST(_AtlasPageVtable*, self->vtable) = NEW(_AtlasPageVtable); self->name = name; /* name is guaranteed to be memory we allocated. */ @@ -295,3 +299,7 @@ AtlasRegion* Atlas_findRegion (const Atlas* self, const char* name) { } return 0; } + +#ifdef __cplusplus +} +#endif diff --git a/spine-c/src/spine/AtlasAttachmentLoader.c b/spine-c/src/spine/AtlasAttachmentLoader.c index 49f16865e..1a8cbba6e 100644 --- a/spine-c/src/spine/AtlasAttachmentLoader.c +++ b/spine-c/src/spine/AtlasAttachmentLoader.c @@ -27,6 +27,10 @@ #include #include +#ifdef __cplusplus +namespace spine { +#endif + void _AtlasAttachmentLoader_free (AttachmentLoader* self) { _AttachmentLoader_deinit(self); } @@ -59,3 +63,7 @@ AtlasAttachmentLoader* AtlasAttachmentLoader_new (Atlas* atlas) { VTABLE(AttachmentLoader, self) ->free = _AtlasAttachmentLoader_free; return self; } + +#ifdef __cplusplus +} +#endif diff --git a/spine-c/src/spine/Attachment.c b/spine-c/src/spine/Attachment.c index d17e7badb..3ee77eb9d 100644 --- a/spine-c/src/spine/Attachment.c +++ b/spine-c/src/spine/Attachment.c @@ -27,6 +27,10 @@ #include #include +#ifdef __cplusplus +namespace spine { +#endif + void _Attachment_init (Attachment* self, const char* name, AttachmentType type) { CONST_CAST(_AttachmentVtable*, self->vtable) = NEW(_AttachmentVtable); MALLOC_STR(self->name, name); @@ -46,3 +50,7 @@ void Attachment_free (Attachment* self) { void Attachment_draw (Attachment* self, Slot* slot) { VTABLE(Attachment, self)->draw(self, slot); } + +#ifdef __cplusplus +} +#endif diff --git a/spine-c/src/spine/AttachmentLoader.c b/spine-c/src/spine/AttachmentLoader.c index 3d9759333..8389b7fb5 100644 --- a/spine-c/src/spine/AttachmentLoader.c +++ b/spine-c/src/spine/AttachmentLoader.c @@ -26,6 +26,10 @@ #include #include +#ifdef __cplusplus +namespace spine { +#endif + void _AttachmentLoader_init (AttachmentLoader* self) { CONST_CAST(_AttachmentLoaderVtable*, self->vtable) = NEW(_AttachmentLoaderVtable); } @@ -54,3 +58,7 @@ void _AttachmentLoader_setError (AttachmentLoader* self, const char* error1, con MALLOC_STR(self->error1, error1); MALLOC_STR(self->error2, error2); } + +#ifdef __cplusplus +} +#endif diff --git a/spine-c/src/spine/Bone.c b/spine-c/src/spine/Bone.c index 997330528..89fab4727 100644 --- a/spine-c/src/spine/Bone.c +++ b/spine-c/src/spine/Bone.c @@ -27,6 +27,10 @@ #include #include +#ifdef __cplusplus +namespace spine { +#endif + static int yDown; void Bone_setYDown (int value) { @@ -88,3 +92,7 @@ void Bone_updateWorldTransform (Bone* self, int flipX, int flipY) { CONST_CAST(float, self->m11) = -self->m11; } } + +#ifdef __cplusplus +} +#endif diff --git a/spine-c/src/spine/BoneData.c b/spine-c/src/spine/BoneData.c index 8dc3ac67d..26d9d8114 100644 --- a/spine-c/src/spine/BoneData.c +++ b/spine-c/src/spine/BoneData.c @@ -26,6 +26,10 @@ #include #include +#ifdef __cplusplus +namespace spine { +#endif + BoneData* BoneData_new (const char* name, BoneData* parent) { BoneData* self = NEW(BoneData); MALLOC_STR(self->name, name); @@ -39,3 +43,7 @@ void BoneData_free (BoneData* self) { FREE(self->name); FREE(self); } + +#ifdef __cplusplus +} +#endif diff --git a/spine-c/src/spine/Json.c b/spine-c/src/spine/Json.c index 2cd7f92ed..d7d236e8b 100644 --- a/spine-c/src/spine/Json.c +++ b/spine-c/src/spine/Json.c @@ -23,12 +23,16 @@ /* Json */ /* JSON parser in C. */ -#include +#include "Json.h" #include #include #include #include +#ifdef __cplusplus +namespace spine { +#endif + static const char* ep; const char* Json_getError (void) { @@ -88,7 +92,7 @@ static const char* parse_number (Json *item, const char* num) { subscale = (subscale * 10) + (*num++ - '0'); /* Number? */ } - n = sign * n * pow(10.0, (scale + subscale * signsubscale)); /* number = +/- number.fraction * 10^+/- exponent */ + n = sign * n * pow(10.0f, (scale + subscale * signsubscale)); /* number = +/- number.fraction * 10^+/- exponent */ item->valuefloat = n; item->valueint = (int)n; @@ -369,3 +373,7 @@ int Json_getInt (Json* value, const char* name, int defaultValue) { value = Json_getItem(value, name); return value ? value->valuefloat : defaultValue; } + +#ifdef __cplusplus +} +#endif diff --git a/spine-c/src/spine/RegionAttachment.c b/spine-c/src/spine/RegionAttachment.c index 95f4a6da6..aa4a408e2 100644 --- a/spine-c/src/spine/RegionAttachment.c +++ b/spine-c/src/spine/RegionAttachment.c @@ -27,6 +27,10 @@ #include #include +#ifdef __cplusplus +namespace spine { +#endif + void _RegionAttachment_init (RegionAttachment* self, const char* name) { self->scaleX = 1; self->scaleY = 1; @@ -66,3 +70,7 @@ void RegionAttachment_updateOffset (RegionAttachment* self) { self->offset[6] = localX2Cos - localYSin; self->offset[7] = localYCos + localX2Sin; } + +#ifdef __cplusplus +} +#endif diff --git a/spine-c/src/spine/Skeleton.c b/spine-c/src/spine/Skeleton.c index b94e50318..2f1e9b5ff 100644 --- a/spine-c/src/spine/Skeleton.c +++ b/spine-c/src/spine/Skeleton.c @@ -27,6 +27,10 @@ #include #include +#ifdef __cplusplus +namespace spine { +#endif + void _Skeleton_init (Skeleton* self, SkeletonData* data) { CONST_CAST(SkeletonData*, self->data) = data; @@ -209,3 +213,7 @@ int Skeleton_setAttachment (Skeleton* self, const char* slotName, const char* at void Skeleton_update (Skeleton* self, float deltaTime) { self->time += deltaTime; } + +#ifdef __cplusplus +} +#endif diff --git a/spine-c/src/spine/SkeletonData.c b/spine-c/src/spine/SkeletonData.c index 463dff7c5..78ff372eb 100644 --- a/spine-c/src/spine/SkeletonData.c +++ b/spine-c/src/spine/SkeletonData.c @@ -27,6 +27,10 @@ #include #include +#ifdef __cplusplus +namespace spine { +#endif + SkeletonData* SkeletonData_new () { return NEW(SkeletonData); } @@ -69,3 +73,7 @@ Skin* SkeletonData_findSkin (const SkeletonData* self, const char* skinName) { if (strcmp(self->skins[i]->name, skinName) == 0) return self->skins[i]; return 0; } + +#ifdef __cplusplus +} +#endif diff --git a/spine-c/src/spine/SkeletonJson.c b/spine-c/src/spine/SkeletonJson.c index ebc9ec585..a207af52d 100644 --- a/spine-c/src/spine/SkeletonJson.c +++ b/spine-c/src/spine/SkeletonJson.c @@ -27,11 +27,15 @@ #include #include #include +#include "Json.h" #include -#include #include #include +#ifdef __cplusplus +namespace spine { +#endif + typedef struct { SkeletonJson super; int ownsLoader; @@ -314,7 +318,8 @@ Animation* SkeletonJson_readAnimation (SkeletonJson* self, const char* json, con readCurve(SUPER(timeline), iii, frame); } animation->timelines[animation->timelineCount++] = (Timeline*)timeline; - animation->duration = fmaxf(animation->duration, timeline->frames[frameCount * 2 - 2]); + float duration = timeline->frames[frameCount * 2 - 2]; + if (duration > animation->duration) animation->duration = animation->duration; } else { int isScale = strcmp(timelineType, "scale") == 0; @@ -329,7 +334,8 @@ Animation* SkeletonJson_readAnimation (SkeletonJson* self, const char* json, con readCurve(SUPER(timeline), iii, frame); } animation->timelines[animation->timelineCount++] = (Timeline*)timeline; - animation->duration = fmaxf(animation->duration, timeline->frames[frameCount * 3 - 3]); + float duration = timeline->frames[frameCount * 3 - 3]; + if (duration > animation->duration) animation->duration = animation->duration; } else { Animation_free(animation); _SkeletonJson_setError(self, 0, "Invalid timeline type for a bone: ", timelineType); @@ -368,7 +374,8 @@ Animation* SkeletonJson_readAnimation (SkeletonJson* self, const char* json, con readCurve(SUPER(timeline), iii, frame); } animation->timelines[animation->timelineCount++] = (Timeline*)timeline; - animation->duration = fmaxf(animation->duration, timeline->frames[frameCount * 5 - 5]); + float duration = timeline->frames[frameCount * 5 - 5]; + if (duration > animation->duration) animation->duration = animation->duration; } else if (strcmp(timelineType, "attachment") == 0) { AttachmentTimeline *timeline = AttachmentTimeline_new(frameCount); @@ -380,7 +387,8 @@ Animation* SkeletonJson_readAnimation (SkeletonJson* self, const char* json, con name->type == Json_NULL ? 0 : name->valuestring); } animation->timelines[animation->timelineCount++] = (Timeline*)timeline; - animation->duration = fmaxf(animation->duration, timeline->frames[frameCount - 1]); + float duration = timeline->frames[frameCount- 1]; + if (duration > animation->duration) animation->duration = animation->duration; } else { Animation_free(animation); @@ -393,3 +401,7 @@ Animation* SkeletonJson_readAnimation (SkeletonJson* self, const char* json, con return animation; } + +#ifdef __cplusplus +} +#endif diff --git a/spine-c/src/spine/Skin.c b/spine-c/src/spine/Skin.c index d44790726..5e184271b 100644 --- a/spine-c/src/spine/Skin.c +++ b/spine-c/src/spine/Skin.c @@ -26,6 +26,10 @@ #include #include +#ifdef __cplusplus +namespace spine { +#endif + SkinEntry* _SkinEntry_new (int slotIndex, const char* name, Attachment* attachment) { SkinEntry* self = NEW(SkinEntry); self->slotIndex = slotIndex; @@ -80,3 +84,7 @@ Attachment* Skin_getAttachment (const Skin* self, int slotIndex, const char* nam } return 0; } + +#ifdef __cplusplus +} +#endif diff --git a/spine-c/src/spine/Slot.c b/spine-c/src/spine/Slot.c index 2844816e6..02b5f3ba9 100644 --- a/spine-c/src/spine/Slot.c +++ b/spine-c/src/spine/Slot.c @@ -27,6 +27,10 @@ #include #include +#ifdef __cplusplus +namespace spine { +#endif + typedef struct { Slot super; float attachmentTime; @@ -79,3 +83,7 @@ void Slot_setToBindPose (Slot* self) { } Slot_setAttachment(self, attachment); } + +#ifdef __cplusplus +} +#endif diff --git a/spine-c/src/spine/SlotData.c b/spine-c/src/spine/SlotData.c index bce6616f7..b24bb3008 100644 --- a/spine-c/src/spine/SlotData.c +++ b/spine-c/src/spine/SlotData.c @@ -26,6 +26,10 @@ #include #include +#ifdef __cplusplus +namespace spine { +#endif + SlotData* SlotData_new (const char* name, BoneData* boneData) { SlotData* self = NEW(SlotData); MALLOC_STR(self->name, name); @@ -50,3 +54,7 @@ void SlotData_setAttachmentName (SlotData* self, const char* attachmentName) { else CONST_CAST(char*, self->attachmentName) = 0; } + +#ifdef __cplusplus +} +#endif diff --git a/spine-c/src/spine/extension.c b/spine-c/src/spine/extension.c index d9283ba8f..fee45b0ac 100644 --- a/spine-c/src/spine/extension.c +++ b/spine-c/src/spine/extension.c @@ -26,6 +26,10 @@ #include #include +#ifdef __cplusplus +namespace spine { +#endif + char* _readFile (const char* path, int* length) { FILE *file = fopen(path, "rb"); if (!file) return 0; @@ -40,3 +44,7 @@ char* _readFile (const char* path, int* length) { return data; } + +#ifdef __cplusplus +} +#endif