From 12e62a3795a7e57ae85964f071e56ed98a20e0b7 Mon Sep 17 00:00:00 2001 From: SirePi Date: Sat, 17 Oct 2020 10:26:23 +0200 Subject: [PATCH 1/3] Added Canvas.DrawImage (#784) --- Source/Core/Duality/Drawing/Canvas.cs | 162 ++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) diff --git a/Source/Core/Duality/Drawing/Canvas.cs b/Source/Core/Duality/Drawing/Canvas.cs index 5debd7608..05009bf1a 100644 --- a/Source/Core/Duality/Drawing/Canvas.cs +++ b/Source/Core/Duality/Drawing/Canvas.cs @@ -394,6 +394,168 @@ public void DrawThickLine(float x, float y, float x2, float y2, float width) this.DrawThickLine(x, y, 0, x2, y2, 0, width); } + /// + /// Draws an image. + /// + public void DrawImage(ContentRef material, float x, float y, float z, float w, float h) + { + this.PushState(); + + if (w < 0.0f) { x += w; w = -w; } + if (h < 0.0f) { y += h; h = -h; } + + Vector3 pos = new Vector3(x, y, z); + + Vector2 shapeHandle = pos.Xy; + float offset = this.State.DepthOffset; + ColorRgba shapeColor = material.Res.MainColor; + VertexC1P3T2[] vertices = this.RentVertices(4); + + vertices[0].Pos = new Vector3(pos.X, pos.Y, pos.Z); + vertices[1].Pos = new Vector3(pos.X + w, pos.Y, pos.Z); + vertices[2].Pos = new Vector3(pos.X + w, pos.Y + h, pos.Z); + vertices[3].Pos = new Vector3(pos.X, pos.Y + h, pos.Z); + + vertices[0].DepthOffset = offset; + vertices[1].DepthOffset = offset; + vertices[2].DepthOffset = offset; + vertices[3].DepthOffset = offset; + + vertices[0].TexCoord = Vector2.Zero; + vertices[1].TexCoord = Vector2.UnitX; + vertices[2].TexCoord = Vector2.One; + vertices[3].TexCoord = Vector2.UnitY; + + vertices[0].Color = shapeColor; + vertices[1].Color = shapeColor; + vertices[2].Color = shapeColor; + vertices[3].Color = shapeColor; + + this.State.SetMaterial(material); + this.State.TransformVertices(vertices, shapeHandle); + this.device.AddVertices(this.State.MaterialDirect, VertexMode.LineLoop, vertices, 4); + + this.PopState(); + } + + /// + /// Draws an image. + /// + /// + /// + /// + /// + /// + public void DrawImage(ContentRef material, float x, float y, float w, float h) + { + this.DrawImage(material, x, y, 0, w, h); + } + + /// + /// Draws an image. + /// + /// + /// + /// + /// + public void DrawImage(ContentRef material, float x, float y, float z) + { + Texture tx = material.Res.MainTexture.Res; + this.DrawImage(material, x, y, z, tx.ContentWidth, tx.ContentHeight); + } + + /// + /// Draws an image. + /// + /// + /// + /// + public void DrawImage(ContentRef material, float x, float y) + { + this.DrawImage(material, x, y, 0); + } + + /// + /// Draws an image. + /// + public void DrawImage(BatchInfo batch, float x, float y, float z, float w, float h) + { + this.PushState(); + + if (w < 0.0f) { x += w; w = -w; } + if (h < 0.0f) { y += h; h = -h; } + + Vector3 pos = new Vector3(x, y, z); + + Vector2 shapeHandle = pos.Xy; + float offset = this.State.DepthOffset; + ColorRgba shapeColor = batch.MainColor; + VertexC1P3T2[] vertices = this.RentVertices(4); + + vertices[0].Pos = new Vector3(pos.X, pos.Y, pos.Z); + vertices[1].Pos = new Vector3(pos.X + w, pos.Y, pos.Z); + vertices[2].Pos = new Vector3(pos.X + w, pos.Y + h, pos.Z); + vertices[3].Pos = new Vector3(pos.X, pos.Y + h, pos.Z); + + vertices[0].DepthOffset = offset; + vertices[1].DepthOffset = offset; + vertices[2].DepthOffset = offset; + vertices[3].DepthOffset = offset; + + vertices[0].TexCoord = Vector2.Zero; + vertices[1].TexCoord = Vector2.UnitX; + vertices[2].TexCoord = Vector2.One; + vertices[3].TexCoord = Vector2.UnitY; + + vertices[0].Color = shapeColor; + vertices[1].Color = shapeColor; + vertices[2].Color = shapeColor; + vertices[3].Color = shapeColor; + + this.State.SetMaterial(batch); + this.State.TransformVertices(vertices, shapeHandle); + this.device.AddVertices(this.State.MaterialDirect, VertexMode.LineLoop, vertices, 4); + + this.PopState(); + } + + /// + /// Draws an image. + /// + /// + /// + /// + /// + /// + public void DrawImage(BatchInfo batch, float x, float y, float w, float h) + { + this.DrawImage(batch, x, y, 0, w, h); + } + + /// + /// Draws an image. + /// + /// + /// + /// + /// + public void DrawImage(BatchInfo batch, float x, float y, float z) + { + Texture tx = batch.MainTexture.Res; + this.DrawImage(batch, x, y, z, tx.ContentWidth, tx.ContentHeight); + } + + /// + /// Draws an image. + /// + /// + /// + /// + public void DrawImage(BatchInfo batch, float x, float y) + { + this.DrawImage(batch, x, y, 0); + } + /// /// Draws a rectangle. /// From b1bc4f844a944fb9bfdb799dbfdab90194fbca11 Mon Sep 17 00:00:00 2001 From: SirePi Date: Wed, 28 Oct 2020 15:32:16 +0100 Subject: [PATCH 2/3] Fixed drawing, added DrawImage(Texture) --- Source/Core/Duality/Drawing/Canvas.cs | 87 +++++++++++++-------------- 1 file changed, 43 insertions(+), 44 deletions(-) diff --git a/Source/Core/Duality/Drawing/Canvas.cs b/Source/Core/Duality/Drawing/Canvas.cs index 05009bf1a..b1ef28a38 100644 --- a/Source/Core/Duality/Drawing/Canvas.cs +++ b/Source/Core/Duality/Drawing/Canvas.cs @@ -397,45 +397,41 @@ public void DrawThickLine(float x, float y, float x2, float y2, float width) /// /// Draws an image. /// - public void DrawImage(ContentRef material, float x, float y, float z, float w, float h) + /// + /// + /// + /// + /// + /// + public void DrawImage(ContentRef texture, float x, float y, float z, float w, float h) { - this.PushState(); - - if (w < 0.0f) { x += w; w = -w; } - if (h < 0.0f) { y += h; h = -h; } - - Vector3 pos = new Vector3(x, y, z); - - Vector2 shapeHandle = pos.Xy; - float offset = this.State.DepthOffset; - ColorRgba shapeColor = material.Res.MainColor; - VertexC1P3T2[] vertices = this.RentVertices(4); - - vertices[0].Pos = new Vector3(pos.X, pos.Y, pos.Z); - vertices[1].Pos = new Vector3(pos.X + w, pos.Y, pos.Z); - vertices[2].Pos = new Vector3(pos.X + w, pos.Y + h, pos.Z); - vertices[3].Pos = new Vector3(pos.X, pos.Y + h, pos.Z); - - vertices[0].DepthOffset = offset; - vertices[1].DepthOffset = offset; - vertices[2].DepthOffset = offset; - vertices[3].DepthOffset = offset; - - vertices[0].TexCoord = Vector2.Zero; - vertices[1].TexCoord = Vector2.UnitX; - vertices[2].TexCoord = Vector2.One; - vertices[3].TexCoord = Vector2.UnitY; + BatchInfo batch = this.device.RentMaterial(); + batch.MainTexture = texture; - vertices[0].Color = shapeColor; - vertices[1].Color = shapeColor; - vertices[2].Color = shapeColor; - vertices[3].Color = shapeColor; + this.DrawImage(batch, x, y, z, w, h); + } - this.State.SetMaterial(material); - this.State.TransformVertices(vertices, shapeHandle); - this.device.AddVertices(this.State.MaterialDirect, VertexMode.LineLoop, vertices, 4); + /// + /// Draws an image. + /// + /// + /// + /// + public void DrawImage(ContentRef texture, float x, float y) + { + this.DrawImage(texture, x, y, 0); + } - this.PopState(); + /// + /// Draws an image. + /// + /// + /// + /// + /// + public void DrawImage(ContentRef texture, float x, float y, float z) + { + this.DrawImage(texture, x, y, z, texture.Res.ContentWidth, texture.Res.ContentHeight); } /// @@ -448,7 +444,7 @@ public void DrawImage(ContentRef material, float x, float y, float z, /// public void DrawImage(ContentRef material, float x, float y, float w, float h) { - this.DrawImage(material, x, y, 0, w, h); + this.DrawImage(material.Res.Info, x, y, 0, w, h); } /// @@ -460,8 +456,7 @@ public void DrawImage(ContentRef material, float x, float y, float w, /// public void DrawImage(ContentRef material, float x, float y, float z) { - Texture tx = material.Res.MainTexture.Res; - this.DrawImage(material, x, y, z, tx.ContentWidth, tx.ContentHeight); + this.DrawImage(material.Res.Info, x, y, z); } /// @@ -472,7 +467,7 @@ public void DrawImage(ContentRef material, float x, float y, float z) /// public void DrawImage(ContentRef material, float x, float y) { - this.DrawImage(material, x, y, 0); + this.DrawImage(material.Res.Info, x, y); } /// @@ -489,9 +484,13 @@ public void DrawImage(BatchInfo batch, float x, float y, float z, float w, float Vector2 shapeHandle = pos.Xy; float offset = this.State.DepthOffset; - ColorRgba shapeColor = batch.MainColor; + ColorRgba shapeColor = this.State.ColorTint; VertexC1P3T2[] vertices = this.RentVertices(4); + Vector2 uvRatio = Vector2.One; + if (batch.MainTexture.IsAvailable) + uvRatio = batch.MainTexture.Res.UVRatio; + vertices[0].Pos = new Vector3(pos.X, pos.Y, pos.Z); vertices[1].Pos = new Vector3(pos.X + w, pos.Y, pos.Z); vertices[2].Pos = new Vector3(pos.X + w, pos.Y + h, pos.Z); @@ -503,9 +502,9 @@ public void DrawImage(BatchInfo batch, float x, float y, float z, float w, float vertices[3].DepthOffset = offset; vertices[0].TexCoord = Vector2.Zero; - vertices[1].TexCoord = Vector2.UnitX; - vertices[2].TexCoord = Vector2.One; - vertices[3].TexCoord = Vector2.UnitY; + vertices[1].TexCoord = Vector2.UnitX * uvRatio; + vertices[2].TexCoord = Vector2.One * uvRatio; + vertices[3].TexCoord = Vector2.UnitY * uvRatio; vertices[0].Color = shapeColor; vertices[1].Color = shapeColor; @@ -514,7 +513,7 @@ public void DrawImage(BatchInfo batch, float x, float y, float z, float w, float this.State.SetMaterial(batch); this.State.TransformVertices(vertices, shapeHandle); - this.device.AddVertices(this.State.MaterialDirect, VertexMode.LineLoop, vertices, 4); + this.device.AddVertices(this.State.MaterialDirect, VertexMode.Quads, vertices, 4); this.PopState(); } From 8e4ca4266c8df22266c9e2a3b76ee54dcc3b210b Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 27 Dec 2020 21:36:24 +0100 Subject: [PATCH 3/3] Simplified DrawImage implementation footprint and added unit test --- Source/Core/Duality/Drawing/Canvas.cs | 138 ++---------------- Test/Core/Drawing/CanvasTest.cs | 28 ++++ .../EmbeddedResources/CanvasTestDrawImage.png | Bin 0 -> 70081 bytes Test/Core/Properties/TestRes.Designer.cs | 10 ++ Test/Core/Properties/TestRes.resx | 3 + 5 files changed, 55 insertions(+), 124 deletions(-) create mode 100644 Test/Core/EmbeddedResources/CanvasTestDrawImage.png diff --git a/Source/Core/Duality/Drawing/Canvas.cs b/Source/Core/Duality/Drawing/Canvas.cs index b1ef28a38..c4ad59c4d 100644 --- a/Source/Core/Duality/Drawing/Canvas.cs +++ b/Source/Core/Duality/Drawing/Canvas.cs @@ -395,92 +395,22 @@ public void DrawThickLine(float x, float y, float x2, float y2, float width) } /// - /// Draws an image. + /// Draws the specified texture in its original pixel size at the specified position. + /// + /// This is a shortcut for using with a temporary material + /// using the specified texture and specifying the appropriate size values in . /// /// /// /// /// - /// - /// - public void DrawImage(ContentRef texture, float x, float y, float z, float w, float h) - { - BatchInfo batch = this.device.RentMaterial(); - batch.MainTexture = texture; - - this.DrawImage(batch, x, y, z, w, h); - } - - /// - /// Draws an image. - /// - /// - /// - /// - public void DrawImage(ContentRef texture, float x, float y) - { - this.DrawImage(texture, x, y, 0); - } - - /// - /// Draws an image. - /// - /// - /// - /// - /// - public void DrawImage(ContentRef texture, float x, float y, float z) - { - this.DrawImage(texture, x, y, z, texture.Res.ContentWidth, texture.Res.ContentHeight); - } - - /// - /// Draws an image. - /// - /// - /// - /// - /// - /// - public void DrawImage(ContentRef material, float x, float y, float w, float h) - { - this.DrawImage(material.Res.Info, x, y, 0, w, h); - } - - /// - /// Draws an image. - /// - /// - /// - /// - /// - public void DrawImage(ContentRef material, float x, float y, float z) - { - this.DrawImage(material.Res.Info, x, y, z); - } - - /// - /// Draws an image. - /// - /// - /// - /// - public void DrawImage(ContentRef material, float x, float y) - { - this.DrawImage(material.Res.Info, x, y); - } - - /// - /// Draws an image. - /// - public void DrawImage(BatchInfo batch, float x, float y, float z, float w, float h) + public void DrawImage(ContentRef texture, float x, float y, float z = 0.0f) { - this.PushState(); - - if (w < 0.0f) { x += w; w = -w; } - if (h < 0.0f) { y += h; h = -h; } + BatchInfo tempMaterial = this.device.RentMaterial(this.State.MaterialDirect); + tempMaterial.MainTexture = texture; Vector3 pos = new Vector3(x, y, z); + Vector2 size = tempMaterial.MainTexture.Res.ContentSize; Vector2 shapeHandle = pos.Xy; float offset = this.State.DepthOffset; @@ -488,13 +418,13 @@ public void DrawImage(BatchInfo batch, float x, float y, float z, float w, float VertexC1P3T2[] vertices = this.RentVertices(4); Vector2 uvRatio = Vector2.One; - if (batch.MainTexture.IsAvailable) - uvRatio = batch.MainTexture.Res.UVRatio; + if (tempMaterial.MainTexture.IsAvailable) + uvRatio = tempMaterial.MainTexture.Res.UVRatio; vertices[0].Pos = new Vector3(pos.X, pos.Y, pos.Z); - vertices[1].Pos = new Vector3(pos.X + w, pos.Y, pos.Z); - vertices[2].Pos = new Vector3(pos.X + w, pos.Y + h, pos.Z); - vertices[3].Pos = new Vector3(pos.X, pos.Y + h, pos.Z); + vertices[1].Pos = new Vector3(pos.X + size.X, pos.Y, pos.Z); + vertices[2].Pos = new Vector3(pos.X + size.X, pos.Y + size.Y, pos.Z); + vertices[3].Pos = new Vector3(pos.X, pos.Y + size.Y, pos.Z); vertices[0].DepthOffset = offset; vertices[1].DepthOffset = offset; @@ -511,48 +441,8 @@ public void DrawImage(BatchInfo batch, float x, float y, float z, float w, float vertices[2].Color = shapeColor; vertices[3].Color = shapeColor; - this.State.SetMaterial(batch); this.State.TransformVertices(vertices, shapeHandle); - this.device.AddVertices(this.State.MaterialDirect, VertexMode.Quads, vertices, 4); - - this.PopState(); - } - - /// - /// Draws an image. - /// - /// - /// - /// - /// - /// - public void DrawImage(BatchInfo batch, float x, float y, float w, float h) - { - this.DrawImage(batch, x, y, 0, w, h); - } - - /// - /// Draws an image. - /// - /// - /// - /// - /// - public void DrawImage(BatchInfo batch, float x, float y, float z) - { - Texture tx = batch.MainTexture.Res; - this.DrawImage(batch, x, y, z, tx.ContentWidth, tx.ContentHeight); - } - - /// - /// Draws an image. - /// - /// - /// - /// - public void DrawImage(BatchInfo batch, float x, float y) - { - this.DrawImage(batch, x, y, 0); + this.device.AddVertices(tempMaterial, VertexMode.Quads, vertices, 4); } /// diff --git a/Test/Core/Drawing/CanvasTest.cs b/Test/Core/Drawing/CanvasTest.cs index d760c8e97..fac518255 100644 --- a/Test/Core/Drawing/CanvasTest.cs +++ b/Test/Core/Drawing/CanvasTest.cs @@ -103,6 +103,34 @@ [Test] public void RenderAllShapesTransformed() c.PopState(); }); } + [Test] public void DrawImage() + { + this.TestImagesEqual(TestRes.CanvasTestDrawImage, c => + { + // Background + c.PushState(); + c.State.ColorTint = new ColorRgba(128, 192, 255); + c.State.DepthOffset += 100.0f; + c.FillRect(0, 0, c.Width, c.Height); + c.PopState(); + + // Draw a few test images + c.State.SetMaterial(DrawTechnique.Alpha); + c.DrawImage(Texture.Checkerboard, 10, 10); + c.DrawImage(Texture.DualityLogoMedium, 10, 300); + + // Draw it with color modifications + c.State.ColorTint = ColorRgba.Red; + c.DrawImage(Texture.DualityLogoMedium, 300, 10); + + // Draw it with transformed vertices + c.State.ColorTint = ColorRgba.White; + c.State.TransformHandle = new Vector2(5, 5); + c.State.TransformScale = new Vector2(1.5f, 0.75f); + c.State.TransformAngle = MathF.RadAngle30; + c.DrawImage(Texture.DualityLogoMedium, 300, 150); + }); + } private void DrawTestImageRow(Canvas c, int baseX, int baseY) { diff --git a/Test/Core/EmbeddedResources/CanvasTestDrawImage.png b/Test/Core/EmbeddedResources/CanvasTestDrawImage.png new file mode 100644 index 0000000000000000000000000000000000000000..0b4b0caa3d702385cb8a58a7077d9616274c2b76 GIT binary patch literal 70081 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 + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap CanvasTestDrawImage { + get { + object obj = ResourceManager.GetObject("CanvasTestDrawImage", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/Test/Core/Properties/TestRes.resx b/Test/Core/Properties/TestRes.resx index 8d95fd74d..66de25e32 100644 --- a/Test/Core/Properties/TestRes.resx +++ b/Test/Core/Properties/TestRes.resx @@ -127,6 +127,9 @@ ..\EmbeddedResources\CanvasTestDiagonalLine.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\EmbeddedResources\CanvasTestDrawImage.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\EmbeddedResources\CanvasTestNothing.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a