public void DrawABoxModelWithImageContent() { Node node = new Node(1, "imageNode", new Rect(10, 10, 300, 200)); StyleRuleSetBuilder ruleSetBuilder = new StyleRuleSetBuilder(node.RuleSet); ruleSetBuilder .Border((5, 10, 5, 10)) .BorderColor(Color.HotPink) .Padding((4, 2, 4, 2)); node.UseBoxModel = true; var texture = new FakeTexture(); texture.LoadImage(@"assets\images\logo.png"); void Populate(DrawingContext dc, ImGui.OSAbstraction.Graphics.ITexture t, StyleRuleSet rule, Rect r) { dc.DrawBoxModel(t, rule, r); } var context = node.RenderOpen(); Populate(context, texture, node.RuleSet, node.Rect); context.Close(); //write records into ContentChecker var checker = new ContentChecker(); Populate(checker, texture, node.RuleSet, node.Rect); //read records from visual to checker and compare checker.StartCheck(); node.RenderContent(new RenderContext(checker, null)); }
public void AppendTexturedMesh() { var mesh = new Mesh(); mesh.CommandBuffer.Add(DrawCommand.Default); mesh.PrimReserve(3, 3); mesh.AppendIndex(0); mesh.AppendIndex(1); mesh.AppendIndex(2); mesh.AppendVertex(new DrawVertex { pos = new Point(0, 0) }); mesh.AppendVertex(new DrawVertex { pos = new Point(1, 0) }); mesh.AppendVertex(new DrawVertex { pos = new Point(2, 0) }); var meshToAppend = new Mesh(); DrawCommand cmd = new DrawCommand(); cmd.ClipRect = Rect.Big; var dummyTexture = new FakeTexture(); cmd.TextureData = dummyTexture;//dummy, only the reference is needed meshToAppend.CommandBuffer.Add(cmd); meshToAppend.PrimReserve(6, 4); Point a = new Point(10, 10); Point c = new Point(300, 300); Point b = new Point(c.X, a.Y); Point d = new Point(a.X, c.Y); Point uvA = new Point(0, 0); Point uvC = new Point(1, 1); Point uvB = new Point(uvC.X, uvA.Y); Point uvD = new Point(uvA.X, uvC.Y); meshToAppend.AppendVertex(new DrawVertex { pos = a, uv = uvA, color = Color.AliceBlue }); meshToAppend.AppendVertex(new DrawVertex { pos = b, uv = uvB, color = Color.AliceBlue }); meshToAppend.AppendVertex(new DrawVertex { pos = c, uv = uvC, color = Color.AliceBlue }); meshToAppend.AppendVertex(new DrawVertex { pos = d, uv = uvD, color = Color.AliceBlue }); meshToAppend.AppendIndex(0); meshToAppend.AppendIndex(1); meshToAppend.AppendIndex(2); meshToAppend.AppendIndex(0); meshToAppend.AppendIndex(2); meshToAppend.AppendIndex(3); meshToAppend.currentIdx += 4; mesh.Append(meshToAppend); Assert.Equal(dummyTexture, mesh.CommandBuffer[mesh.CommandBuffer.Count - 1].TextureData); Assert.Equal(7, mesh.VertexBuffer.Count); Assert.Equal(9, mesh.IndexBuffer.Count); Assert.Equal(0, mesh.IndexBuffer[0]); Assert.Equal(1, mesh.IndexBuffer[1]); Assert.Equal(2, mesh.IndexBuffer[2]); Assert.Equal(3, mesh.IndexBuffer[3]); Assert.Equal(4, mesh.IndexBuffer[4]); Assert.Equal(5, mesh.IndexBuffer[5]); Assert.Equal(3, mesh.IndexBuffer[6]); Assert.Equal(5, mesh.IndexBuffer[7]); Assert.Equal(6, mesh.IndexBuffer[8]); Assert.Equal(0, mesh.VertexBuffer[0].pos.x); Assert.Equal(1, mesh.VertexBuffer[1].pos.x); Assert.Equal(2, mesh.VertexBuffer[2].pos.x); Assert.Equal(10, mesh.VertexBuffer[3].pos.x); Assert.Equal(300, mesh.VertexBuffer[4].pos.x); Assert.Equal(300, mesh.VertexBuffer[5].pos.x); Assert.Equal(10, mesh.VertexBuffer[6].pos.x); }