mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 794727: Translate asynchronously-animated transforms by the offset to their reference frame when sampling. r=mattwoodrow
This commit is contained in:
parent
c185f04347
commit
9397b0a053
@ -618,10 +618,19 @@ SampleValue(float aPortion, Animation& aAnimation, nsStyleAnimation::Value& aSta
|
||||
nsCSSValueList* interpolatedList = interpolatedValue.GetCSSValueListValue();
|
||||
|
||||
TransformData& data = aAnimation.data().get_TransformData();
|
||||
nsPoint origin = data.origin();
|
||||
int32_t auPerCSSPixel = nsDeviceContext::AppUnitsPerCSSPixel();
|
||||
gfx3DMatrix transform =
|
||||
nsDisplayTransform::GetResultingTransformMatrix(nullptr, data.origin(), nsDeviceContext::AppUnitsPerCSSPixel(),
|
||||
&data.bounds(), interpolatedList, &data.mozOrigin(),
|
||||
&data.perspectiveOrigin(), &data.perspective());
|
||||
nsDisplayTransform::GetResultingTransformMatrix(
|
||||
nullptr, origin, auPerCSSPixel,
|
||||
&data.bounds(), interpolatedList, &data.mozOrigin(),
|
||||
&data.perspectiveOrigin(), &data.perspective());
|
||||
// NB: See nsDisplayTransform::GetTransform().
|
||||
gfxPoint3D newOrigin =
|
||||
gfxPoint3D(NS_round(NSAppUnitsToFloatPixels(origin.x, auPerCSSPixel)),
|
||||
NS_round(NSAppUnitsToFloatPixels(origin.y, auPerCSSPixel)),
|
||||
0.0f);
|
||||
transform.Translate(newOrigin);
|
||||
|
||||
InfallibleTArray<TransformFunction>* functions = new InfallibleTArray<TransformFunction>();
|
||||
functions->AppendElement(TransformMatrix(transform));
|
||||
|
Loading…
Reference in New Issue
Block a user