Skip to content

Commit

Permalink
test: geom_transform tests with non-obvious matrices
Browse files Browse the repository at this point in the history
  • Loading branch information
cookie-s committed Jan 18, 2025
1 parent e24e630 commit dc4cbd4
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 16 deletions.
46 changes: 37 additions & 9 deletions tests/tests/swfs/avm2/geom_transform/Test.as
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,18 @@ package {
trace("sprite2D.transform.matrix3D", sprite2D.transform.matrix3D);
trace("mat2D", mat2D);

trace("// sprite2D: update mat2D");
mat2D.setTo(2,3,4,5,6,7);
trace("sprite2D.transform.matrix", sprite2D.transform.matrix);
trace("sprite2D.transform.matrix3D", sprite2D.transform.matrix3D);
trace("mat2D", mat2D);

trace("// sprite2D: .matrix = mat2D");
sprite2D.transform.matrix = mat2D;
trace("sprite2D.transform.matrix", sprite2D.transform.matrix);
trace("sprite2D.transform.matrix3D", sprite2D.transform.matrix3D);
trace("mat2D", mat2D);

trace("// sprite2D: .matrix = null");
sprite2D.transform.matrix = null;
trace("sprite2D.transform.matrix", sprite2D.transform.matrix);
Expand Down Expand Up @@ -71,27 +83,43 @@ package {
trace("sprite3D.transform.matrix3D.rawData", sprite3D.transform.matrix3D.rawData);
trace("mat3D.rawData", mat3D.rawData);

trace("// sprite3D: update mat3D");
mat3D.copyFrom(new Matrix3D(new <Number>[2,3,0,0,4,5,0,0,0,0,1,0,6,7,0,1])); // FIXME: z values shouldn't be zero (0) for test coverage. Unsupported now.
trace("sprite3D.transform.matrix", sprite3D.transform.matrix);
trace("sprite3D.transform.matrix3D", sprite3D.transform.matrix3D);
//// FIXME: mat3D update should be applied to transform.matrix3D immediately
// trace("sprite3D.transform.matrix3D.rawData", sprite3D.transform.matrix3D.rawData);
trace("mat3D.rawData", mat3D.rawData);

trace("// sprite3D: .matrix3D = mat3D");
sprite3D.transform.matrix3D = mat3D;
trace("sprite3D.transform.matrix", sprite3D.transform.matrix);
trace("sprite3D.transform.matrix3D", sprite3D.transform.matrix3D);
trace("sprite3D.transform.matrix3D.rawData", sprite3D.transform.matrix3D.rawData);
trace("mat3D.rawData", mat3D.rawData);

trace("// sprite3D: .matrix = null");
sprite3D.transform.matrix = null;
trace("sprite3D.transform.matrix", sprite3D.transform.matrix);
trace("sprite3D.transform.matrix3D", sprite3D.transform.matrix3D);
trace("sprite3D.transform.matrix3D.rawData", sprite3D.transform.matrix3D.rawData);
trace("mat3D.rawData", mat3D.rawData);

//// FIXME: matrix3D.rawData should be updated by x/y update.
// trace("// sprite3D: set x = 30, y = 50");
// sprite3D.x = 30;
// sprite3D.y = 50;
// trace("sprite3D.transform.matrix", sprite3D.transform.matrix);
// trace("sprite3D.transform.matrix3D", sprite3D.transform.matrix3D);
// trace("sprite3D.transform.matrix3D.rawData", sprite3D.transform.matrix3D.rawData);
// trace("mat3D", mat3D);
trace("// sprite3D: set x = 30, y = 50");
sprite3D.x = 30;
sprite3D.y = 50;
trace("sprite3D.transform.matrix", sprite3D.transform.matrix);
trace("sprite3D.transform.matrix3D", sprite3D.transform.matrix3D);
trace("sprite3D.transform.matrix3D.rawData", sprite3D.transform.matrix3D.rawData);
//// FIXME: mat3D.rawData should be updated by sprite3D x/y update.
// trace("mat3D.rawData", mat3D.rawData);

trace("// sprite3D: .matrix3D = null");
sprite3D.transform.matrix3D = null;
trace("sprite3D.transform.matrix", sprite3D.transform.matrix);
trace("sprite3D.transform.matrix3D", sprite3D.transform.matrix3D);
trace("mat3D.rawData", mat3D.rawData);
//// FIXME: mat3D.rawData should be updated by sprite3D x/y update.
// trace("mat3D.rawData", mat3D.rawData);
}

private function testCopy2D() : void {
Expand Down
34 changes: 27 additions & 7 deletions tests/tests/swfs/avm2/geom_transform/output.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,34 +5,54 @@ sprite2D.transform.matrix3D null
sprite2D.transform.matrix (a=1, b=0, c=0, d=1, tx=0, ty=0)
sprite2D.transform.matrix3D null
mat2D (a=1, b=0, c=0, d=1, tx=0, ty=0)
// sprite2D: update mat2D
sprite2D.transform.matrix (a=1, b=0, c=0, d=1, tx=0, ty=0)
sprite2D.transform.matrix3D null
mat2D (a=2, b=3, c=4, d=5, tx=6, ty=7)
// sprite2D: .matrix = mat2D
sprite2D.transform.matrix (a=2, b=3, c=4, d=5, tx=6, ty=7)
sprite2D.transform.matrix3D null
mat2D (a=2, b=3, c=4, d=5, tx=6, ty=7)
// sprite2D: .matrix = null
sprite2D.transform.matrix null
sprite2D.transform.matrix3D [object Matrix3D]
sprite2D.transform.matrix3D.rawData 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1
mat2D (a=1, b=0, c=0, d=1, tx=0, ty=0)
sprite2D.transform.matrix3D.rawData 2,3,0,0,4,5,0,0,0,0,1,0,6,7,0,1
mat2D (a=2, b=3, c=4, d=5, tx=6, ty=7)
// sprite2D: .matrix3D = null
sprite2D.transform.matrix (a=1, b=0, c=0, d=1, tx=0, ty=0)
sprite2D.transform.matrix3D null
mat2D (a=1, b=0, c=0, d=1, tx=0, ty=0)
mat2D (a=2, b=3, c=4, d=5, tx=6, ty=7)
// sprite2D: set x = 30, y = 50
sprite2D.transform.matrix (a=1, b=0, c=0, d=1, tx=30, ty=50)
sprite2D.transform.matrix3D null
mat2D (a=1, b=0, c=0, d=1, tx=0, ty=0)
mat2D (a=2, b=3, c=4, d=5, tx=6, ty=7)

// sprite3D: set identity matrix3D
sprite3D.transform.matrix null
sprite3D.transform.matrix3D [object Matrix3D]
sprite3D.transform.matrix3D.rawData 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1
mat3D.rawData 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1
// sprite3D: update mat3D
sprite3D.transform.matrix null
sprite3D.transform.matrix3D [object Matrix3D]
mat3D.rawData 2,3,0,0,4,5,0,0,0,0,1,0,6,7,0,1
// sprite3D: .matrix3D = mat3D
sprite3D.transform.matrix null
sprite3D.transform.matrix3D [object Matrix3D]
sprite3D.transform.matrix3D.rawData 2,3,0,0,4,5,0,0,0,0,1,0,6,7,0,1
mat3D.rawData 2,3,0,0,4,5,0,0,0,0,1,0,6,7,0,1
// sprite3D: .matrix = null
sprite3D.transform.matrix null
sprite3D.transform.matrix3D [object Matrix3D]
sprite3D.transform.matrix3D.rawData 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1
mat3D.rawData 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1
sprite3D.transform.matrix3D.rawData 2,3,0,0,4,5,0,0,0,0,1,0,6,7,0,1
mat3D.rawData 2,3,0,0,4,5,0,0,0,0,1,0,6,7,0,1
// sprite3D: set x = 30, y = 50
sprite3D.transform.matrix null
sprite3D.transform.matrix3D [object Matrix3D]
sprite3D.transform.matrix3D.rawData 2,3,0,0,4,5,0,0,0,0,1,0,30,50,0,1
// sprite3D: .matrix3D = null
sprite3D.transform.matrix (a=1, b=0, c=0, d=1, tx=0, ty=0)
sprite3D.transform.matrix3D null
mat3D.rawData 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1

// Copy2D
sprite1.transform.matrix (a=1, b=2, c=3, d=4, tx=5, ty=6)
Expand Down
Binary file modified tests/tests/swfs/avm2/geom_transform/test.swf
Binary file not shown.

0 comments on commit dc4cbd4

Please sign in to comment.