[c][cpp] Using -Werror, both C and C++ runtime compiles without warnings now. Fixes #1391.

This commit is contained in:
badlogic 2019-06-24 16:18:24 +02:00
parent 80971172ef
commit f5632c4ef1
14 changed files with 91 additions and 55 deletions

View File

@ -6,8 +6,8 @@ if(MSVC)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
set (CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS}") set (CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS}")
else() else()
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic -Wnonportable-include-path -Wshadow -std=c89") set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wunused-value -Wno-c++11-long-long -Wno-variadic-macros -Werror -Wextra -pedantic -Wnonportable-include-path -Wshadow -std=c89")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wnon-virtual-dtor -pedantic -Wnonportable-include-path -Wshadow -std=c++03 -fno-exceptions -fno-rtti") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wunused-value -Wno-c++11-long-long -Wno-variadic-macros -Werror -Wextra -Wnon-virtual-dtor -pedantic -Wnonportable-include-path -Wshadow -std=c++03 -fno-exceptions -fno-rtti")
endif() endif()
set(CMAKE_INSTALL_PREFIX "./") set(CMAKE_INSTALL_PREFIX "./")

View File

@ -101,6 +101,7 @@ void spIkConstraint_apply2 (spBone* parent, spBone* child, float targetX, float
spBone* pp = parent->parent; spBone* pp = parent->parent;
float tx, ty, dd, dx, dy, l1, l2, a1, a2, r, td, sd, p; float tx, ty, dd, dx, dy, l1, l2, a1, a2, r, td, sd, p;
float id, x, y; float id, x, y;
float aa, bb, ll, ta, c0, c1, c2;
if (alpha == 0) { if (alpha == 0) {
spBone_updateWorldTransform(child); spBone_updateWorldTransform(child);
return; return;
@ -171,7 +172,7 @@ void spIkConstraint_apply2 (spBone* parent, spBone* child, float targetX, float
} }
} }
if (u) { if (u) {
float cosine, a, b; float cosine;
l2 *= psx; l2 *= psx;
cosine = (dd - l1 * l1 - l2 * l2) / (2 * l1 * l2); cosine = (dd - l1 * l1 - l2 * l2) / (2 * l1 * l2);
if (cosine < -1) cosine = -1; if (cosine < -1) cosine = -1;
@ -184,10 +185,10 @@ void spIkConstraint_apply2 (spBone* parent, spBone* child, float targetX, float
b = l2 * SIN(a2); b = l2 * SIN(a2);
a1 = ATAN2(ty * a - tx * b, tx * a + ty * b); a1 = ATAN2(ty * a - tx * b, tx * a + ty * b);
} else { } else {
float a = psx * l2, b = psy * l2; a = psx * l2; b = psy * l2;
float aa = a * a, bb = b * b, ll = l1 * l1, ta = ATAN2(ty, tx); aa = a * a, bb = b * b, ll = l1 * l1, ta = ATAN2(ty, tx);
float c0 = bb * ll + aa * dd - aa * bb, c1 = -2 * bb * l1, c2 = bb - aa; c0 = bb * ll + aa * dd - aa * bb, c1 = -2 * bb * l1, c2 = bb - aa;
float d = c1 * c1 - 4 * c2 * c0; d = c1 * c1 - 4 * c2 * c0;
if (d >= 0) { if (d >= 0) {
float q = SQRT(d), r0, r1; float q = SQRT(d), r0, r1;
if (c1 < 0) q = -q; if (c1 < 0) q = -q;

View File

@ -71,7 +71,6 @@ spSkeletonBinary* spSkeletonBinary_create (spAtlas* atlas) {
} }
void spSkeletonBinary_dispose (spSkeletonBinary* self) { void spSkeletonBinary_dispose (spSkeletonBinary* self) {
int i;
_spSkeletonBinary* internal = SUB_CAST(_spSkeletonBinary, self); _spSkeletonBinary* internal = SUB_CAST(_spSkeletonBinary, self);
if (internal->ownsLoader) spAttachmentLoader_dispose(self->attachmentLoader); if (internal->ownsLoader) spAttachmentLoader_dispose(self->attachmentLoader);
FREE(internal->linkedMeshes); FREE(internal->linkedMeshes);

View File

@ -127,10 +127,11 @@ void spSkeletonBounds_update (spSkeletonBounds* self, spSkeleton* skeleton, int/
for (i = 0; i < skeleton->slotsCount; ++i) { for (i = 0; i < skeleton->slotsCount; ++i) {
spPolygon* polygon; spPolygon* polygon;
spBoundingBoxAttachment* boundingBox; spBoundingBoxAttachment* boundingBox;
spAttachment* attachment;
spSlot* slot = skeleton->slots[i]; spSlot* slot = skeleton->slots[i];
if (!slot->bone->active) continue; if (!slot->bone->active) continue;
spAttachment* attachment = slot->attachment; attachment = slot->attachment;
if (!attachment || attachment->type != SP_ATTACHMENT_BOUNDING_BOX) continue; if (!attachment || attachment->type != SP_ATTACHMENT_BOUNDING_BOX) continue;
boundingBox = (spBoundingBoxAttachment*)attachment; boundingBox = (spBoundingBoxAttachment*)attachment;
self->boundingBoxes[self->count] = boundingBox; self->boundingBoxes[self->count] = boundingBox;

View File

@ -153,11 +153,11 @@ static spAnimation* _spSkeletonJson_readAnimation (spSkeletonJson* self, Json* r
Json* ik = Json_getItem(root, "ik"); Json* ik = Json_getItem(root, "ik");
Json* transform = Json_getItem(root, "transform"); Json* transform = Json_getItem(root, "transform");
Json* paths = Json_getItem(root, "paths"); Json* paths = Json_getItem(root, "paths");
Json* deform = Json_getItem(root, "deform"); Json* deformJson = Json_getItem(root, "deform");
Json* drawOrder = Json_getItem(root, "drawOrder"); Json* drawOrderJson = Json_getItem(root, "drawOrder");
Json* events = Json_getItem(root, "events"); Json* events = Json_getItem(root, "events");
Json *boneMap, *slotMap, *constraintMap; Json *boneMap, *slotMap, *constraintMap;
if (!drawOrder) drawOrder = Json_getItem(root, "draworder"); if (!drawOrderJson) drawOrderJson = Json_getItem(root, "draworder");
for (boneMap = bones ? bones->child : 0; boneMap; boneMap = boneMap->next) for (boneMap = bones ? bones->child : 0; boneMap; boneMap = boneMap->next)
timelinesCount += boneMap->size; timelinesCount += boneMap->size;
@ -167,10 +167,10 @@ static spAnimation* _spSkeletonJson_readAnimation (spSkeletonJson* self, Json* r
timelinesCount += transform ? transform->size : 0; timelinesCount += transform ? transform->size : 0;
for (constraintMap = paths ? paths->child : 0; constraintMap; constraintMap = constraintMap->next) for (constraintMap = paths ? paths->child : 0; constraintMap; constraintMap = constraintMap->next)
timelinesCount += constraintMap->size; timelinesCount += constraintMap->size;
for (constraintMap = deform ? deform->child : 0; constraintMap; constraintMap = constraintMap->next) for (constraintMap = deformJson ? deformJson->child : 0; constraintMap; constraintMap = constraintMap->next)
for (slotMap = constraintMap->child; slotMap; slotMap = slotMap->next) for (slotMap = constraintMap->child; slotMap; slotMap = slotMap->next)
timelinesCount += slotMap->size; timelinesCount += slotMap->size;
if (drawOrder) ++timelinesCount; if (drawOrderJson) ++timelinesCount;
if (events) ++timelinesCount; if (events) ++timelinesCount;
animation = spAnimation_create(root->name, timelinesCount); animation = spAnimation_create(root->name, timelinesCount);
@ -381,7 +381,7 @@ static spAnimation* _spSkeletonJson_readAnimation (spSkeletonJson* self, Json* r
} }
/* Deform timelines. */ /* Deform timelines. */
for (constraintMap = deform ? deform->child : 0; constraintMap; constraintMap = constraintMap->next) { for (constraintMap = deformJson ? deformJson->child : 0; constraintMap; constraintMap = constraintMap->next) {
spSkin* skin = spSkeletonData_findSkin(skeletonData, constraintMap->name); spSkin* skin = spSkeletonData_findSkin(skeletonData, constraintMap->name);
for (slotMap = constraintMap->child; slotMap; slotMap = slotMap->next) { for (slotMap = constraintMap->child; slotMap; slotMap = slotMap->next) {
int slotIndex = spSkeletonData_findSlotIndex(skeletonData, slotMap->name); int slotIndex = spSkeletonData_findSlotIndex(skeletonData, slotMap->name);
@ -406,8 +406,8 @@ static spAnimation* _spSkeletonJson_readAnimation (spSkeletonJson* self, Json* r
timeline->attachment = SUPER(attachment); timeline->attachment = SUPER(attachment);
for (valueMap = timelineMap->child, frameIndex = 0; valueMap; valueMap = valueMap->next, ++frameIndex) { for (valueMap = timelineMap->child, frameIndex = 0; valueMap; valueMap = valueMap->next, ++frameIndex) {
Json* vertices = Json_getItem(valueMap, "vertices");
float* deform; float* deform;
Json* vertices = Json_getItem(valueMap, "vertices");
if (!vertices) { if (!vertices) {
if (weighted) { if (weighted) {
deform = tempDeform; deform = tempDeform;
@ -428,9 +428,9 @@ static spAnimation* _spSkeletonJson_readAnimation (spSkeletonJson* self, Json* r
} }
memset(deform + v, 0, sizeof(float) * (deformLength - v)); memset(deform + v, 0, sizeof(float) * (deformLength - v));
if (!weighted) { if (!weighted) {
float* vertices = attachment->vertices; float* verticesValues = attachment->vertices;
for (v = 0; v < deformLength; ++v) for (v = 0; v < deformLength; ++v)
deform[v] += vertices[v]; deform[v] += verticesValues[v];
} }
} }
spDeformTimeline_setFrame(timeline, frameIndex, Json_getFloat(valueMap, "time", 0), deform); spDeformTimeline_setFrame(timeline, frameIndex, Json_getFloat(valueMap, "time", 0), deform);
@ -445,9 +445,9 @@ static spAnimation* _spSkeletonJson_readAnimation (spSkeletonJson* self, Json* r
} }
/* Draw order timeline. */ /* Draw order timeline. */
if (drawOrder) { if (drawOrderJson) {
spDrawOrderTimeline* timeline = spDrawOrderTimeline_create(drawOrder->size, skeletonData->slotsCount); spDrawOrderTimeline* timeline = spDrawOrderTimeline_create(drawOrderJson->size, skeletonData->slotsCount);
for (valueMap = drawOrder->child, frameIndex = 0; valueMap; valueMap = valueMap->next, ++frameIndex) { for (valueMap = drawOrderJson->child, frameIndex = 0; valueMap; valueMap = valueMap->next, ++frameIndex) {
int ii; int ii;
int* drawOrder = 0; int* drawOrder = 0;
Json* offsets = Json_getItem(valueMap, "offsets"); Json* offsets = Json_getItem(valueMap, "offsets");
@ -486,7 +486,7 @@ static spAnimation* _spSkeletonJson_readAnimation (spSkeletonJson* self, Json* r
FREE(drawOrder); FREE(drawOrder);
} }
animation->timelines[animation->timelinesCount++] = SUPER_CAST(spTimeline, timeline); animation->timelines[animation->timelinesCount++] = SUPER_CAST(spTimeline, timeline);
animation->duration = MAX(animation->duration, timeline->frames[drawOrder->size - 1]); animation->duration = MAX(animation->duration, timeline->frames[drawOrderJson->size - 1]);
} }
/* Event timeline. */ /* Event timeline. */
@ -586,7 +586,7 @@ spSkeletonData* spSkeletonJson_readSkeletonDataFile (spSkeletonJson* self, const
spSkeletonData* spSkeletonJson_readSkeletonData (spSkeletonJson* self, const char* json) { spSkeletonData* spSkeletonJson_readSkeletonData (spSkeletonJson* self, const char* json) {
int i, ii; int i, ii;
spSkeletonData* skeletonData; spSkeletonData* skeletonData;
Json *root, *skeleton, *bones, *boneMap, *ik, *transform, *path, *slots, *skins, *animations, *events; Json *root, *skeleton, *bones, *boneMap, *ik, *transform, *pathJson, *slots, *skins, *animations, *events;
_spSkeletonJson* internal = SUB_CAST(_spSkeletonJson, self); _spSkeletonJson* internal = SUB_CAST(_spSkeletonJson, self);
FREE(self->error); FREE(self->error);
@ -811,12 +811,12 @@ spSkeletonData* spSkeletonJson_readSkeletonData (spSkeletonJson* self, const cha
} }
/* Path constraints */ /* Path constraints */
path = Json_getItem(root, "path"); pathJson = Json_getItem(root, "path");
if (path) { if (pathJson) {
Json *constraintMap; Json *constraintMap;
skeletonData->pathConstraintsCount = path->size; skeletonData->pathConstraintsCount = pathJson->size;
skeletonData->pathConstraints = MALLOC(spPathConstraintData*, path->size); skeletonData->pathConstraints = MALLOC(spPathConstraintData*, pathJson->size);
for (constraintMap = path->child, i = 0; constraintMap; constraintMap = constraintMap->next, ++i) { for (constraintMap = pathJson->child, i = 0; constraintMap; constraintMap = constraintMap->next, ++i) {
const char* name; const char* name;
const char* item; const char* item;
@ -1070,19 +1070,19 @@ spSkeletonData* spSkeletonJson_readSkeletonData (spSkeletonJson* self, const cha
break; break;
} }
case SP_ATTACHMENT_PATH: { case SP_ATTACHMENT_PATH: {
spPathAttachment* path = SUB_CAST(spPathAttachment, attachment); spPathAttachment* pathAttachment = SUB_CAST(spPathAttachment, attachment);
int vertexCount = 0; int vertexCount = 0;
path->closed = Json_getInt(attachmentMap, "closed", 0); pathAttachment->closed = Json_getInt(attachmentMap, "closed", 0);
path->constantSpeed = Json_getInt(attachmentMap, "constantSpeed", 1); pathAttachment->constantSpeed = Json_getInt(attachmentMap, "constantSpeed", 1);
vertexCount = Json_getInt(attachmentMap, "vertexCount", 0); vertexCount = Json_getInt(attachmentMap, "vertexCount", 0);
_readVertices(self, attachmentMap, SUPER(path), vertexCount << 1); _readVertices(self, attachmentMap, SUPER(pathAttachment), vertexCount << 1);
path->lengthsLength = vertexCount / 3; pathAttachment->lengthsLength = vertexCount / 3;
path->lengths = MALLOC(float, path->lengthsLength); pathAttachment->lengths = MALLOC(float, pathAttachment->lengthsLength);
curves = Json_getItem(attachmentMap, "lengths"); curves = Json_getItem(attachmentMap, "lengths");
for (curves = curves->child, ii = 0; curves; curves = curves->next, ++ii) { for (curves = curves->child, ii = 0; curves; curves = curves->next, ++ii) {
path->lengths[ii] = curves->valueFloat * self->scale; pathAttachment->lengths[ii] = curves->valueFloat * self->scale;
} }
break; break;
} }

View File

@ -151,8 +151,9 @@ spShortArray* spTriangulator_triangulate(spTriangulator* self, spFloatArray* ver
spShortArray_ensureCapacity(triangles, MAX(0, vertexCount - 2) << 2); spShortArray_ensureCapacity(triangles, MAX(0, vertexCount - 2) << 2);
while (vertexCount > 3) { while (vertexCount > 3) {
int previous = vertexCount - 1, i = 0, next = 1; int previous = vertexCount - 1, next = 1;
int previousIndex, nextIndex; int previousIndex, nextIndex;
i = 0;
while (1) { while (1) {
if (!isConcave[i]) { if (!isConcave[i]) {
int p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; int p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1;

View File

@ -92,6 +92,7 @@ void _spSwirlVertexEffect_transform(spVertexEffect* self, float* positionX, floa
} }
void _spSwirlVertexEffect_end(spVertexEffect* self) { void _spSwirlVertexEffect_end(spVertexEffect* self) {
UNUSED(self);
} }
spSwirlVertexEffect* spSwirlVertexEffect_create(float radius) { spSwirlVertexEffect* spSwirlVertexEffect_create(float radius) {

View File

@ -55,7 +55,6 @@ public:
void reportLeaks() { void reportLeaks() {
for (std::map<void*, Allocation>::iterator it = _allocated.begin(); it != _allocated.end(); it++) { for (std::map<void*, Allocation>::iterator it = _allocated.begin(); it != _allocated.end(); it++) {
void* addr = it->second.address;
printf("\"%s:%i (%zu bytes at %p)\n", it->second.fileName, it->second.line, it->second.size, it->second.address); printf("\"%s:%i (%zu bytes at %p)\n", it->second.fileName, it->second.line, it->second.size, it->second.address);
} }
printf("allocations: %zu, reallocations: %zu, frees: %zu\n", _allocations, _reallocations, _frees); printf("allocations: %zu, reallocations: %zu, frees: %zu\n", _allocations, _reallocations, _frees);

View File

@ -128,7 +128,7 @@ void IkConstraint::apply(Bone &parent, Bone &child, float targetX, float targetY
dx = (x * d - y * b) * id - px; dx = (x * d - y * b) * id - px;
dy = (y * a - x * c) * id - py; dy = (y * a - x * c) * id - py;
l1 = MathUtil::sqrt(dx * dx + dy * dy); l1 = MathUtil::sqrt(dx * dx + dy * dy);
l2 = child._data.getLength() * csx, a1, a2; l2 = child._data.getLength() * csx;
if (l1 < 0.0001) { if (l1 < 0.0001) {
apply(parent, targetX, targetY, false, stretch, false, alpha); apply(parent, targetX, targetY, false, stretch, false, alpha);
child.updateWorldTransform(cx, cy, 0, child._ascaleX, child._ascaleY, child._ashearX, child._ashearY); child.updateWorldTransform(cx, cy, 0, child._ascaleX, child._ascaleY, child._ashearX, child._ashearY);
@ -150,7 +150,7 @@ void IkConstraint::apply(Bone &parent, Bone &child, float targetX, float targetY
} }
} }
if (u) { if (u) {
float cosine, a, b; float cosine;
l2 *= psx; l2 *= psx;
cosine = (dd - l1 * l1 - l2 * l2) / (2 * l1 * l2); cosine = (dd - l1 * l1 - l2 * l2) / (2 * l1 * l2);
if (cosine < -1) cosine = -1; if (cosine < -1) cosine = -1;
@ -163,10 +163,10 @@ void IkConstraint::apply(Bone &parent, Bone &child, float targetX, float targetY
b = l2 * MathUtil::sin(a2); b = l2 * MathUtil::sin(a2);
a1 = MathUtil::atan2(ty * a - tx * b, tx * a + ty * b); a1 = MathUtil::atan2(ty * a - tx * b, tx * a + ty * b);
} else { } else {
float a = psx * l2, b = psy * l2; a = psx * l2, b = psy * l2;
float aa = a * a, bb = b * b, ll = l1 * l1, ta = MathUtil::atan2(ty, tx); float aa = a * a, bb = b * b, ll = l1 * l1, ta = MathUtil::atan2(ty, tx);
float c0 = bb * ll + aa * dd - aa * bb, c1 = -2 * bb * l1, c2 = bb - aa; float c0 = bb * ll + aa * dd - aa * bb, c1 = -2 * bb * l1, c2 = bb - aa;
float d = c1 * c1 - 4 * c2 * c0; d = c1 * c1 - 4 * c2 * c0;
if (d >= 0) { if (d >= 0) {
float q = MathUtil::sqrt(d), r0, r1; float q = MathUtil::sqrt(d), r0, r1;
if (c1 < 0) q = -q; if (c1 < 0) q = -q;

View File

@ -687,8 +687,7 @@ SkeletonData *SkeletonJson::readSkeletonData(const char *json) {
int vertexCount = 0; int vertexCount = 0;
const char *end = Json::getString(attachmentMap, "end", 0); const char *end = Json::getString(attachmentMap, "end", 0);
if (end) { if (end) {
SlotData *slot = skeletonData->findSlot(end); clip->_endSlot = skeletonData->findSlot(end);
clip->_endSlot = slot;
} }
vertexCount = Json::getInt(attachmentMap, "vertexCount", 0) << 1; vertexCount = Json::getInt(attachmentMap, "vertexCount", 0) << 1;
readVertices(attachmentMap, clip, vertexCount); readVertices(attachmentMap, clip, vertexCount);

View File

@ -158,10 +158,10 @@ void Skin::attachAll(Skeleton &skeleton, Skin &oldSkin) {
} }
void Skin::addSkin(Skin* other) { void Skin::addSkin(Skin* other) {
for (int i = 0; i < other->getBones().size(); i++) for (size_t i = 0; i < other->getBones().size(); i++)
if (!_bones.contains(other->getBones()[i])) _bones.add(other->getBones()[i]); if (!_bones.contains(other->getBones()[i])) _bones.add(other->getBones()[i]);
for (int i = 0; i < other->getConstraints().size(); i++) for (size_t i = 0; i < other->getConstraints().size(); i++)
if (!_constraints.contains(other->getConstraints()[i])) _constraints.add(other->getConstraints()[i]); if (!_constraints.contains(other->getConstraints()[i])) _constraints.add(other->getConstraints()[i]);
AttachmentMap::Entries entries = other->getAttachments(); AttachmentMap::Entries entries = other->getAttachments();
@ -172,10 +172,10 @@ void Skin::addSkin(Skin* other) {
} }
void Skin::copySkin(Skin* other) { void Skin::copySkin(Skin* other) {
for (int i = 0; i < other->getBones().size(); i++) for (size_t i = 0; i < other->getBones().size(); i++)
if (!_bones.contains(other->getBones()[i])) _bones.add(other->getBones()[i]); if (!_bones.contains(other->getBones()[i])) _bones.add(other->getBones()[i]);
for (int i = 0; i < other->getConstraints().size(); i++) for (size_t i = 0; i < other->getConstraints().size(); i++)
if (!_constraints.contains(other->getConstraints()[i])) _constraints.add(other->getConstraints()[i]); if (!_constraints.contains(other->getConstraints()[i])) _constraints.add(other->getConstraints()[i]);
AttachmentMap::Entries entries = other->getAttachments(); AttachmentMap::Entries entries = other->getAttachments();

View File

@ -40,6 +40,7 @@ using namespace spine;
#include <stdlib.h> #include <stdlib.h>
void callback (AnimationState* state, EventType type, TrackEntry* entry, Event* event) { void callback (AnimationState* state, EventType type, TrackEntry* entry, Event* event) {
UNUSED(state);
const char* animationName = (entry && entry->animation) ? entry->animation->name : 0; const char* animationName = (entry && entry->animation) ? entry->animation->name : 0;
switch (type) { switch (type) {
@ -107,6 +108,7 @@ void testcase (void func(SkeletonData* skeletonData, Atlas* atlas),
} }
void spineboy (SkeletonData* skeletonData, Atlas* atlas) { void spineboy (SkeletonData* skeletonData, Atlas* atlas) {
UNUSED(atlas);
SkeletonBounds* bounds = SkeletonBounds_create(); SkeletonBounds* bounds = SkeletonBounds_create();
// Configure mixing. // Configure mixing.
@ -164,6 +166,7 @@ void spineboy (SkeletonData* skeletonData, Atlas* atlas) {
} }
void goblins (SkeletonData* skeletonData, Atlas* atlas) { void goblins (SkeletonData* skeletonData, Atlas* atlas) {
UNUSED(atlas);
SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData); SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData);
drawable->timeScale = 1; drawable->timeScale = 1;
drawable->setUsePremultipliedAlpha(true); drawable->setUsePremultipliedAlpha(true);
@ -199,6 +202,7 @@ void goblins (SkeletonData* skeletonData, Atlas* atlas) {
} }
void raptor (SkeletonData* skeletonData, Atlas* atlas) { void raptor (SkeletonData* skeletonData, Atlas* atlas) {
UNUSED(atlas);
SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData); SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData);
drawable->timeScale = 1; drawable->timeScale = 1;
drawable->setUsePremultipliedAlpha(true); drawable->setUsePremultipliedAlpha(true);
@ -242,6 +246,7 @@ void raptor (SkeletonData* skeletonData, Atlas* atlas) {
} }
void tank (SkeletonData* skeletonData, Atlas* atlas) { void tank (SkeletonData* skeletonData, Atlas* atlas) {
UNUSED(atlas);
SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData); SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData);
drawable->timeScale = 1; drawable->timeScale = 1;
drawable->setUsePremultipliedAlpha(true); drawable->setUsePremultipliedAlpha(true);
@ -272,6 +277,7 @@ void tank (SkeletonData* skeletonData, Atlas* atlas) {
} }
void vine (SkeletonData* skeletonData, Atlas* atlas) { void vine (SkeletonData* skeletonData, Atlas* atlas) {
UNUSED(atlas);
SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData); SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData);
drawable->timeScale = 1; drawable->timeScale = 1;
drawable->setUsePremultipliedAlpha(true); drawable->setUsePremultipliedAlpha(true);
@ -303,6 +309,7 @@ void vine (SkeletonData* skeletonData, Atlas* atlas) {
} }
void stretchyman (SkeletonData* skeletonData, Atlas* atlas) { void stretchyman (SkeletonData* skeletonData, Atlas* atlas) {
UNUSED(atlas);
SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData); SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData);
drawable->timeScale = 1; drawable->timeScale = 1;
drawable->setUsePremultipliedAlpha(true); drawable->setUsePremultipliedAlpha(true);
@ -334,6 +341,7 @@ void stretchyman (SkeletonData* skeletonData, Atlas* atlas) {
} }
void coin (SkeletonData* skeletonData, Atlas* atlas) { void coin (SkeletonData* skeletonData, Atlas* atlas) {
UNUSED(atlas);
SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData); SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData);
drawable->timeScale = 1; drawable->timeScale = 1;
drawable->setUsePremultipliedAlpha(true); drawable->setUsePremultipliedAlpha(true);
@ -349,7 +357,7 @@ void coin (SkeletonData* skeletonData, Atlas* atlas) {
window.setFramerateLimit(60); window.setFramerateLimit(60);
sf::Event event; sf::Event event;
sf::Clock deltaClock; sf::Clock deltaClock;
float swirlTime = 0;
while (window.isOpen()) { while (window.isOpen()) {
while (window.pollEvent(event)) while (window.pollEvent(event))
if (event.type == sf::Event::Closed) window.close(); if (event.type == sf::Event::Closed) window.close();
@ -366,6 +374,7 @@ void coin (SkeletonData* skeletonData, Atlas* atlas) {
} }
void owl (SkeletonData* skeletonData, Atlas* atlas) { void owl (SkeletonData* skeletonData, Atlas* atlas) {
UNUSED(atlas);
SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData); SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData);
drawable->timeScale = 1; drawable->timeScale = 1;
drawable->setUsePremultipliedAlpha(true); drawable->setUsePremultipliedAlpha(true);
@ -423,6 +432,7 @@ void owl (SkeletonData* skeletonData, Atlas* atlas) {
* Used for debugging purposes during runtime development * Used for debugging purposes during runtime development
*/ */
void test (SkeletonData* skeletonData, Atlas* atlas) { void test (SkeletonData* skeletonData, Atlas* atlas) {
UNUSED(atlas);
spSkeleton* skeleton = Skeleton_create(skeletonData); spSkeleton* skeleton = Skeleton_create(skeletonData);
spAnimationStateData* animData = spAnimationStateData_create(skeletonData); spAnimationStateData* animData = spAnimationStateData_create(skeletonData);
spAnimationState* animState = spAnimationState_create(animData); spAnimationState* animState = spAnimationState_create(animData);
@ -447,6 +457,7 @@ void test (SkeletonData* skeletonData, Atlas* atlas) {
} }
void testSkinsApi(SkeletonData* skeletonData, Atlas* atlas) { void testSkinsApi(SkeletonData* skeletonData, Atlas* atlas) {
UNUSED(atlas);
SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData); SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData);
drawable->timeScale = 1; drawable->timeScale = 1;
drawable->setUsePremultipliedAlpha(true); drawable->setUsePremultipliedAlpha(true);
@ -488,6 +499,7 @@ void testSkinsApi(SkeletonData* skeletonData, Atlas* atlas) {
} }
void testMixAndMatch(SkeletonData* skeletonData, Atlas* atlas) { void testMixAndMatch(SkeletonData* skeletonData, Atlas* atlas) {
UNUSED(atlas);
SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData); SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData);
drawable->timeScale = 1; drawable->timeScale = 1;
drawable->setUsePremultipliedAlpha(true); drawable->setUsePremultipliedAlpha(true);

View File

@ -256,11 +256,11 @@ void SkeletonDrawable::draw (RenderTarget& target, RenderStates states) const {
if (vertexEffect != 0) { if (vertexEffect != 0) {
spFloatArray_clear(tempUvs); spFloatArray_clear(tempUvs);
spColorArray_clear(tempColors); spColorArray_clear(tempColors);
for (int i = 0; i < verticesCount; i++) { for (int j = 0; j < verticesCount; j++) {
spColor vertexColor = light; spColor vertexColor = light;
spColor dark; spColor dark;
dark.r = dark.g = dark.b = dark.a = 0; dark.r = dark.g = dark.b = dark.a = 0;
int index = i << 1; int index = j << 1;
float x = vertices[index]; float x = vertices[index];
float y = vertices[index + 1]; float y = vertices[index + 1];
float u = uvs[index]; float u = uvs[index];
@ -273,8 +273,8 @@ void SkeletonDrawable::draw (RenderTarget& target, RenderStates states) const {
spColorArray_add(tempColors, vertexColor); spColorArray_add(tempColors, vertexColor);
} }
for (int i = 0; i < indicesCount; ++i) { for (int j = 0; j < indicesCount; ++j) {
int index = indices[i] << 1; int index = indices[j] << 1;
vertex.position.x = vertices[index]; vertex.position.x = vertices[index];
vertex.position.y = vertices[index + 1]; vertex.position.y = vertices[index + 1];
vertex.texCoords.x = uvs[index] * size.x; vertex.texCoords.x = uvs[index] * size.x;
@ -287,8 +287,8 @@ void SkeletonDrawable::draw (RenderTarget& target, RenderStates states) const {
vertexArray->append(vertex); vertexArray->append(vertex);
} }
} else { } else {
for (int i = 0; i < indicesCount; ++i) { for (int j = 0; j < indicesCount; ++j) {
int index = indices[i] << 1; int index = indices[j] << 1;
vertex.position.x = vertices[index]; vertex.position.x = vertices[index];
vertex.position.y = vertices[index + 1]; vertex.position.y = vertices[index + 1];
vertex.texCoords.x = uvs[index] * size.x; vertex.texCoords.x = uvs[index] * size.x;

View File

@ -42,6 +42,7 @@ unique_ptr<T> make_unique(Args&&... args) {
} }
void callback (AnimationState* state, EventType type, TrackEntry* entry, Event* event) { void callback (AnimationState* state, EventType type, TrackEntry* entry, Event* event) {
SP_UNUSED(state);
const String& animationName = (entry && entry->getAnimation()) ? entry->getAnimation()->getName() : String(""); const String& animationName = (entry && entry->getAnimation()) ? entry->getAnimation()->getName() : String("");
switch (type) { switch (type) {
@ -104,6 +105,8 @@ void testcase (void func(SkeletonData* skeletonData, Atlas* atlas),
} }
void spineboy (SkeletonData* skeletonData, Atlas* atlas) { void spineboy (SkeletonData* skeletonData, Atlas* atlas) {
SP_UNUSED(atlas);
SkeletonBounds bounds; SkeletonBounds bounds;
// Configure mixing. // Configure mixing.
@ -158,6 +161,8 @@ void spineboy (SkeletonData* skeletonData, Atlas* atlas) {
} }
void goblins (SkeletonData* skeletonData, Atlas* atlas) { void goblins (SkeletonData* skeletonData, Atlas* atlas) {
SP_UNUSED(atlas);
SkeletonDrawable drawable(skeletonData); SkeletonDrawable drawable(skeletonData);
drawable.timeScale = 1; drawable.timeScale = 1;
drawable.setUsePremultipliedAlpha(true); drawable.setUsePremultipliedAlpha(true);
@ -197,6 +202,8 @@ void goblins (SkeletonData* skeletonData, Atlas* atlas) {
} }
void raptor (SkeletonData* skeletonData, Atlas* atlas) { void raptor (SkeletonData* skeletonData, Atlas* atlas) {
SP_UNUSED(atlas);
SkeletonDrawable drawable(skeletonData); SkeletonDrawable drawable(skeletonData);
drawable.timeScale = 1; drawable.timeScale = 1;
drawable.setUsePremultipliedAlpha(true); drawable.setUsePremultipliedAlpha(true);
@ -240,6 +247,8 @@ void raptor (SkeletonData* skeletonData, Atlas* atlas) {
} }
void tank (SkeletonData* skeletonData, Atlas* atlas) { void tank (SkeletonData* skeletonData, Atlas* atlas) {
SP_UNUSED(atlas);
SkeletonDrawable drawable(skeletonData); SkeletonDrawable drawable(skeletonData);
drawable.timeScale = 1; drawable.timeScale = 1;
drawable.setUsePremultipliedAlpha(true); drawable.setUsePremultipliedAlpha(true);
@ -269,6 +278,8 @@ void tank (SkeletonData* skeletonData, Atlas* atlas) {
} }
void vine (SkeletonData* skeletonData, Atlas* atlas) { void vine (SkeletonData* skeletonData, Atlas* atlas) {
SP_UNUSED(atlas);
SkeletonDrawable drawable(skeletonData); SkeletonDrawable drawable(skeletonData);
drawable.timeScale = 1; drawable.timeScale = 1;
drawable.setUsePremultipliedAlpha(true); drawable.setUsePremultipliedAlpha(true);
@ -299,6 +310,8 @@ void vine (SkeletonData* skeletonData, Atlas* atlas) {
} }
void stretchyman (SkeletonData* skeletonData, Atlas* atlas) { void stretchyman (SkeletonData* skeletonData, Atlas* atlas) {
SP_UNUSED(atlas);
SkeletonDrawable drawable(skeletonData); SkeletonDrawable drawable(skeletonData);
drawable.timeScale = 1; drawable.timeScale = 1;
drawable.setUsePremultipliedAlpha(true); drawable.setUsePremultipliedAlpha(true);
@ -330,6 +343,8 @@ void stretchyman (SkeletonData* skeletonData, Atlas* atlas) {
} }
void stretchymanStrechyIk (SkeletonData* skeletonData, Atlas* atlas) { void stretchymanStrechyIk (SkeletonData* skeletonData, Atlas* atlas) {
SP_UNUSED(atlas);
SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData); SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData);
drawable->timeScale = 1; drawable->timeScale = 1;
drawable->setUsePremultipliedAlpha(true); drawable->setUsePremultipliedAlpha(true);
@ -363,6 +378,8 @@ void stretchymanStrechyIk (SkeletonData* skeletonData, Atlas* atlas) {
} }
void coin (SkeletonData* skeletonData, Atlas* atlas) { void coin (SkeletonData* skeletonData, Atlas* atlas) {
SP_UNUSED(atlas);
SkeletonDrawable drawable(skeletonData); SkeletonDrawable drawable(skeletonData);
drawable.timeScale = 1; drawable.timeScale = 1;
drawable.setUsePremultipliedAlpha(true); drawable.setUsePremultipliedAlpha(true);
@ -377,7 +394,7 @@ void coin (SkeletonData* skeletonData, Atlas* atlas) {
window.setFramerateLimit(60); window.setFramerateLimit(60);
sf::Event event; sf::Event event;
sf::Clock deltaClock; sf::Clock deltaClock;
float swirlTime = 0;
while (window.isOpen()) { while (window.isOpen()) {
while (window.pollEvent(event)) { while (window.pollEvent(event)) {
if (event.type == sf::Event::Closed) window.close(); if (event.type == sf::Event::Closed) window.close();
@ -395,6 +412,8 @@ void coin (SkeletonData* skeletonData, Atlas* atlas) {
} }
void owl (SkeletonData* skeletonData, Atlas* atlas) { void owl (SkeletonData* skeletonData, Atlas* atlas) {
SP_UNUSED(atlas);
SkeletonDrawable drawable(skeletonData); SkeletonDrawable drawable(skeletonData);
drawable.timeScale = 1; drawable.timeScale = 1;
drawable.setUsePremultipliedAlpha(true); drawable.setUsePremultipliedAlpha(true);
@ -451,6 +470,8 @@ void owl (SkeletonData* skeletonData, Atlas* atlas) {
} }
void mixAndMatch (SkeletonData* skeletonData, Atlas* atlas) { void mixAndMatch (SkeletonData* skeletonData, Atlas* atlas) {
SP_UNUSED(atlas);
SkeletonDrawable drawable(skeletonData); SkeletonDrawable drawable(skeletonData);
drawable.timeScale = 1; drawable.timeScale = 1;
drawable.setUsePremultipliedAlpha(true); drawable.setUsePremultipliedAlpha(true);
@ -499,6 +520,8 @@ void mixAndMatch (SkeletonData* skeletonData, Atlas* atlas) {
* Used for debugging purposes during runtime development * Used for debugging purposes during runtime development
*/ */
void test (SkeletonData* skeletonData, Atlas* atlas) { void test (SkeletonData* skeletonData, Atlas* atlas) {
SP_UNUSED(atlas);
Skeleton skeleton(skeletonData); Skeleton skeleton(skeletonData);
AnimationStateData animationStateData(skeletonData); AnimationStateData animationStateData(skeletonData);
AnimationState animationState(&animationStateData); AnimationState animationState(&animationStateData);