Skip to content

Commit

Permalink
test: Add test displayobject_z
Browse files Browse the repository at this point in the history
displayobject_z is the test for rendering with different tz values
from a few places by the image comparison.
  • Loading branch information
cookie-s committed Feb 2, 2025
1 parent ff05b1b commit 1c266cb
Show file tree
Hide file tree
Showing 5 changed files with 116 additions and 0 deletions.
88 changes: 88 additions & 0 deletions tests/tests/swfs/avm2/displayobject_z/Test.as
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
package {
import flash.display.*;
import flash.text.*;
import flash.geom.*;

[SWF(width="500", height="500")]
public class Test extends Sprite {
public function Test() {
super();

stage.scaleMode = StageScaleMode.NO_SCALE;

testSetZ();
trace("");

testImageComparison();
trace("");

}

private function testSetZ() : void {
var sprite: Sprite = new Sprite();

trace("// SetZ: default parameters");
trace("sprite.z", sprite.z);
trace("sprite.transform.matrix", sprite.transform.matrix);
trace("sprite.transform.matrix3D", sprite.transform.matrix3D);

trace("// SetZ: set .z=50");
sprite.z = 50;
trace("sprite.z", sprite.z);
trace("sprite.transform.matrix", sprite.transform.matrix);
trace("sprite.transform.matrix3D", sprite.transform.matrix3D);
trace("sprite.transform.matrix3D.rawData", sprite.transform.matrix3D.rawData);

trace("// SetZ: set .transform.matrix3D=null");
sprite.transform.matrix3D = null;
trace("sprite.z", sprite.z);
trace("sprite.transform.matrix", sprite.transform.matrix);
trace("sprite.transform.matrix3D", sprite.transform.matrix3D);

trace("// SetZ: set .transform.matrix=null");
sprite.transform.matrix = null;
trace("sprite.z", sprite.z);
trace("sprite.transform.matrix", sprite.transform.matrix);
trace("sprite.transform.matrix3D", sprite.transform.matrix3D);
trace("sprite.transform.matrix3D.rawData", sprite.transform.matrix3D.rawData);
}

private function testImageComparison() : void {
var s : Sprite = new Sprite();
stage.addChild(s);

for (var i:int = 0; i < 8; i++) {
// top-left
var bd1 : BitmapData = new BitmapData(100, 100, false, 0xFF00FF - 0x220000 * i);
var b1 : Bitmap = new Bitmap(bd1);
b1.z = 50 * i;
s.addChild(b1);

// center
var bd2 : BitmapData = new BitmapData(100, 100, false, 0xFFFF00 - 0x220000 * i);
var b2 : Bitmap = new Bitmap(bd2);
b2.x = (stage.stageWidth - bd2.width) / 2;
b2.y = (stage.stageHeight - bd2.height) / 2;
b2.z = 50 * i;
s.addChild(b2);

// bottom
var bd3 : BitmapData = new BitmapData(100, 100, false, 0x00FFFF - 0x000022 * i);
var b3 : Bitmap = new Bitmap(bd3);
b3.x = (stage.stageWidth - bd3.width) / 2;
b3.y = (stage.stageHeight - bd3.height);
b3.z = 50 * i;
s.addChild(b3);
}

for (var j:int = 0; j < 100; j++) {
var bd4 : BitmapData = new BitmapData(100, 100, false, 0x000000);
var b4 : Bitmap = new Bitmap(bd4);
b4.x = stage.stageWidth - bd4.width;
b4.y = stage.stageHeight - bd4.height;
b4.z = 500 * j;
s.addChild(b4);
}
}
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 20 additions & 0 deletions tests/tests/swfs/avm2/displayobject_z/output.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// SetZ: default parameters
sprite.z 0
sprite.transform.matrix (a=1, b=0, c=0, d=1, tx=0, ty=0)
sprite.transform.matrix3D null
// SetZ: set .z=50
sprite.z 50
sprite.transform.matrix null
sprite.transform.matrix3D [object Matrix3D]
sprite.transform.matrix3D.rawData 1,0,0,0,0,1,0,0,0,0,1,0,0,0,50,1
// SetZ: set .transform.matrix3D=null
sprite.z 0
sprite.transform.matrix (a=1, b=0, c=0, d=1, tx=0, ty=0)
sprite.transform.matrix3D null
// SetZ: set .transform.matrix=null
sprite.z 0
sprite.transform.matrix null
sprite.transform.matrix3D [object Matrix3D]
sprite.transform.matrix3D.rawData 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1


Binary file added tests/tests/swfs/avm2/displayobject_z/test.swf
Binary file not shown.
8 changes: 8 additions & 0 deletions tests/tests/swfs/avm2/displayobject_z/test.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
num_frames = 1

[image_comparisons.output]
tolerance = 10
max_outliers = 5000 # FIXME: High max_outliers. FP renders objects with a matrix3D transformation in a different way from 2D objects especially around the object edges.

[player_options]
with_renderer = { optional = true, sample_count = 4 }

0 comments on commit 1c266cb

Please sign in to comment.