mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-06 07:14:55 +08:00
[c] Fix applying flipping for noScale/noScaleOrReflection transform mode. See #951
This commit is contained in:
parent
20cdb9ec99
commit
1013e31268
@ -173,14 +173,14 @@ void spBone_updateWorldTransformWith (spBone* self, float x, float y, float rota
|
||||
lb = COS_DEG(90 + shearY) * scaleY;
|
||||
lc = SIN_DEG(shearX) * scaleX;
|
||||
ld = SIN_DEG(90 + shearY) * scaleY;
|
||||
if (self->data->transformMode != SP_TRANSFORMMODE_NOSCALEORREFLECTION ? pa * pd - pb * pc < 0 : self->skeleton->flipX != self->skeleton->flipY) {
|
||||
zb = -zb;
|
||||
zd = -zd;
|
||||
}
|
||||
CONST_CAST(float, self->a) = za * la + zb * lc;
|
||||
CONST_CAST(float, self->b) = za * lb + zb * ld;
|
||||
CONST_CAST(float, self->c) = zc * la + zd * lc;
|
||||
CONST_CAST(float, self->d) = zc * lb + zd * ld;
|
||||
if (self->data->transformMode != SP_TRANSFORMMODE_NOSCALEORREFLECTION ? pa * pd - pb * pc < 0 : self->skeleton->flipX != self->skeleton->flipY) {
|
||||
CONST_CAST(float, self->b) = -self->b;
|
||||
CONST_CAST(float, self->d) = -self->d;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user