public void TestUVMapping() { var asset = Engine.AssetLoader.Get <TextureAsset>("Images/logoAsymmetric.png"); Runner.ExecuteAsLoop(_ => { RenderComposer composer = Engine.Renderer.StartFrame(); composer.RenderSprite(new Vector3(10, 10, 0), new Vector2(100, 100), Color.White, asset.Texture, null, true); composer.RenderSprite(new Vector3(100, 10, 0), new Vector2(100, 100), Color.White, asset.Texture, null, false, true); composer.RenderSprite(new Vector3(200, 10, 0), new Vector2(100, 100), Color.White, asset.Texture, null, true, true); composer.FlushRenderStream(); asset.Texture.Tile = false; composer.RenderSprite(new Vector3(10, 100, 0), new Vector2(100, 100), Color.White, asset.Texture, null, true); composer.RenderSprite(new Vector3(100, 100, 0), new Vector2(100, 100), Color.White, asset.Texture, null, false, true); composer.RenderSprite(new Vector3(200, 100, 0), new Vector2(100, 100), Color.White, asset.Texture, null, true, true); composer.RenderSprite(new Vector3(10, 200, 0), new Vector2(100, 100), Color.White, asset.Texture, new Rectangle(0, 0, 50, 50), true); composer.RenderSprite(new Vector3(100, 200, 0), new Vector2(100, 100), Color.White, asset.Texture, new Rectangle(0, 0, 50, 50), false, true); composer.RenderSprite(new Vector3(200, 200, 0), new Vector2(100, 100), Color.White, asset.Texture, new Rectangle(0, 0, 50, 50), true, true); composer.FlushRenderStream(); asset.Texture.Tile = true; Engine.Renderer.EndFrame(); Runner.VerifyScreenshot(ResultDb.TestUVMapping); }).WaitOne(); }
public void RenderComposerRandomInvalidation() { Runner.ExecuteAsLoop(_ => { RenderComposer composer = Engine.Renderer.StartFrame(); const int count = ushort.MaxValue * 2; const int size = 1; var y = 0; var x = 0; var elements = 0; // Generate the locations at which an invalidation will occur. var invalidationIdx = new List <int>(); for (var i = 0; i < 10; i++) { invalidationIdx.Add(Helpers.GenerateRandomNumber(100, count - 100)); } while (elements < count) { if (invalidationIdx.IndexOf(elements) != -1) { Engine.Log.Info($"Invalidation of batch at element - {elements}", TestRunnerLogger.TestRunnerSrc); composer.FlushRenderStream(); } var c = new Color(elements, 255 - elements, elements < ushort.MaxValue ? 255 : 0); composer.RenderSprite(new Vector3(x * size, y * size, 0), new Vector2(size, size), c); x++; elements++; if (x * size < Engine.Renderer.CurrentTarget.Size.X) { continue; } y++; x = 0; } Engine.Renderer.EndFrame(); Runner.VerifyScreenshot(ResultDb.RenderComposerSpriteLimitTest); }).WaitOne(); }