Skip to content

Commit

Permalink
auto-test: when testing sprite update do 1 render pass with object off
Browse files Browse the repository at this point in the history
This tests that game objects can recover after not being drawn for some time, and get the "message" that the sprite has changed since.
  • Loading branch information
ivan-mogilko committed Apr 3, 2024
1 parent f4dc46b commit 0e817aa
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 16 deletions.
28 changes: 20 additions & 8 deletions ags3/auto-test/test-enginerender.asc
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,11 @@ void TestEngineRender()
_TakeScreenshotAndCompareRect(oDynamicObject.X, oDynamicObject.Y - dynspr.Height, dynspr.Width, dynspr.Height, dynspr),
"DynamicSprite update 1-1 (room object) is matched");

_FillSprite(dynspr, color2);
Wait(1);
oDynamicObject.Visible = false; // stop its render pass for a moment
_FillSprite(dynspr, color2); // change the sprite
Wait(1); // one pass with object disabled
oDynamicObject.Visible = true; // start render pass again
Wait(1); // let it render
tap.ok(
_TakeScreenshotAndCompareRect(oDynamicObject.X, oDynamicObject.Y - dynspr.Height, dynspr.Width, dynspr.Height, dynspr),
"DynamicSprite update 1-2 (room object) is matched");
Expand Down Expand Up @@ -92,11 +95,14 @@ void TestEngineRender()
_TakeScreenshotAndCompareRect(oDynamicObject.X, oDynamicObject.Y - dynspr.Height, dynspr.Width, dynspr.Height, dynspr),
"DynamicSprite recreate 1-1 (room object) is matched");

dynspr.Delete();
oDynamicObject.Visible = false; // stop its render pass for a moment
dynspr.Delete(); // recreate the sprite
dynspr = DynamicSprite.Create(10, 10, false);
_FillSprite(dynspr, color2);
Wait(1); // one pass with object disabled
oDynamicObject.Graphic = dynspr.Graphic;
Wait(1);
oDynamicObject.Visible = true; // start render pass again
Wait(1); // let it render
tap.ok(
_TakeScreenshotAndCompareRect(oDynamicObject.X, oDynamicObject.Y - dynspr.Height, dynspr.Width, dynspr.Height, dynspr),
"DynamicSprite recreate 1-2 (room object) is matched");
Expand All @@ -123,8 +129,11 @@ void TestEngineRender()
_TakeScreenshotAndCompareRect(over.X, over.Y, dynspr.Width, dynspr.Height, dynspr),
"DynamicSprite update 2-1 (overlay) is matched");

_FillSprite(dynspr, color2);
Wait(1);
over.Transparency = 100; // stop its render pass for a moment
_FillSprite(dynspr, color2); // change the sprite
Wait(1); // one pass with object disabled
over.Transparency = 0; // start render pass again
Wait(1); // let it render
tap.ok(
_TakeScreenshotAndCompareRect(over.X, over.Y, dynspr.Width, dynspr.Height, dynspr),
"DynamicSprite update 2-2 (overlay) is matched");
Expand All @@ -148,11 +157,14 @@ void TestEngineRender()
_TakeScreenshotAndCompareRect(over.X, over.Y, dynspr.Width, dynspr.Height, dynspr),
"DynamicSprite recreate 2-1 (overlay) is matched");

dynspr.Delete();
over.Transparency = 100; // stop its render pass for a moment
dynspr.Delete(); // recreate the sprite
dynspr = DynamicSprite.Create(10, 10, false);
_FillSprite(dynspr, color2);
Wait(1); // one pass with object disabled
over.Graphic = dynspr.Graphic;
Wait(1);
over.Transparency = 0; // start render pass again
Wait(1); // let it render
tap.ok(
_TakeScreenshotAndCompareRect(over.X, over.Y, dynspr.Width, dynspr.Height, dynspr),
"DynamicSprite recreate 2-2 (overlay) is matched");
Expand Down
28 changes: 20 additions & 8 deletions ags4/auto-test/test-enginerender.asc
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,11 @@ void TestEngineRender()
_TakeScreenshotAndCompareRect(oDynamicObject.X, oDynamicObject.Y - dynspr.Height, dynspr.Width, dynspr.Height, dynspr),
"DynamicSprite update 1-1 (room object) is matched");

_FillSprite(dynspr, color2);
Wait(1);
oDynamicObject.Visible = false; // stop its render pass for a moment
_FillSprite(dynspr, color2); // change the sprite
Wait(1); // one pass with object disabled
oDynamicObject.Visible = true; // start render pass again
Wait(1); // let it render
tap.ok(
_TakeScreenshotAndCompareRect(oDynamicObject.X, oDynamicObject.Y - dynspr.Height, dynspr.Width, dynspr.Height, dynspr),
"DynamicSprite update 1-2 (room object) is matched");
Expand Down Expand Up @@ -92,11 +95,14 @@ void TestEngineRender()
_TakeScreenshotAndCompareRect(oDynamicObject.X, oDynamicObject.Y - dynspr.Height, dynspr.Width, dynspr.Height, dynspr),
"DynamicSprite recreate 1-1 (room object) is matched");

dynspr.Delete();
oDynamicObject.Visible = false; // stop its render pass for a moment
dynspr.Delete(); // recreate the sprite
dynspr = DynamicSprite.Create(10, 10);
_FillSprite(dynspr, color2);
Wait(1); // one pass with object disabled
oDynamicObject.Graphic = dynspr.Graphic;
Wait(1);
oDynamicObject.Visible = true; // start render pass again
Wait(1); // let it render
tap.ok(
_TakeScreenshotAndCompareRect(oDynamicObject.X, oDynamicObject.Y - dynspr.Height, dynspr.Width, dynspr.Height, dynspr),
"DynamicSprite recreate 1-2 (room object) is matched");
Expand All @@ -123,8 +129,11 @@ void TestEngineRender()
_TakeScreenshotAndCompareRect(over.X, over.Y, dynspr.Width, dynspr.Height, dynspr),
"DynamicSprite update 2-1 (overlay) is matched");

_FillSprite(dynspr, color2);
Wait(1);
over.Transparency = 100; // stop its render pass for a moment
_FillSprite(dynspr, color2); // change the sprite
Wait(1); // one pass with object disabled
over.Transparency = 0; // start render pass again
Wait(1); // let it render
tap.ok(
_TakeScreenshotAndCompareRect(over.X, over.Y, dynspr.Width, dynspr.Height, dynspr),
"DynamicSprite update 2-2 (overlay) is matched");
Expand All @@ -148,11 +157,14 @@ void TestEngineRender()
_TakeScreenshotAndCompareRect(over.X, over.Y, dynspr.Width, dynspr.Height, dynspr),
"DynamicSprite recreate 2-1 (overlay) is matched");

dynspr.Delete();
over.Transparency = 100; // stop its render pass for a moment
dynspr.Delete(); // recreate the sprite
dynspr = DynamicSprite.Create(10, 10);
_FillSprite(dynspr, color2);
Wait(1); // one pass with object disabled
over.Graphic = dynspr.Graphic;
Wait(1);
over.Transparency = 0; // start render pass again
Wait(1); // let it render
tap.ok(
_TakeScreenshotAndCompareRect(over.X, over.Y, dynspr.Width, dynspr.Height, dynspr),
"DynamicSprite recreate 2-2 (overlay) is matched");
Expand Down

0 comments on commit 0e817aa

Please sign in to comment.