public void DrawImage() { var window = new Win32Window(); window.Init(new Point(100, 100), new Size(300, 400), WindowTypes.Regular); var renderer = new Win32OpenGLRenderer(); renderer.Init(window.Pointer, window.ClientSize); var image = new Image(@"assets\images\logo.png"); var primitive = new ImagePrimitive(); primitive.Image = image; primitive.Offset = new Vector(10, 10); var primitiveRenderer = new BuiltinPrimitiveRenderer(); var brush = new Brush(); brush.FillColor = Color.White; var mesh = new Mesh(); mesh.CommandBuffer.Add(DrawCommand.Default); primitiveRenderer.SetImageMesh(mesh); primitiveRenderer.DrawImage(primitive, brush); while (true) { window.MainLoop(() => { renderer.Clear(Color.FrameBg); Win32OpenGLRenderer.DrawMesh(renderer.imageMaterial, primitiveRenderer.ImageMesh, (int)window.ClientSize.Width, (int)window.ClientSize.Height); renderer.SwapBuffers(); }); if (Input.Keyboard.Instance.KeyDown(Key.Escape)) { break; } } }
public void DrawOriginalImage() { byte[] imageRawBytes; int width, height; using (var context = new RenderContextForTest(300, 400)) { var primitive = new ImagePrimitive(@"assets\images\logo.png"); primitive.Offset = new Vector(10, 10); var styleRuleSet = new StyleRuleSet(); var styleRuleSetBuilder = new StyleRuleSetBuilder(styleRuleSet); styleRuleSetBuilder.BackgroundColor(Color.White); var primitiveRenderer = new BuiltinPrimitiveRenderer(); var mesh = new Mesh(); mesh.CommandBuffer.Add(DrawCommand.Default); primitiveRenderer.SetImageMesh(mesh); primitiveRenderer.DrawImage(primitive, new Rect(10, 10, primitive.Image.Width, primitive.Image.Height), styleRuleSet); context.Clear(); context.DrawImageMesh(mesh); imageRawBytes = context.Renderer.GetRawBackBuffer(out width, out height); } var image = Util.CreateImage(imageRawBytes, width, height, flip: true); string expectedImageFilePath = @"GraphicsImplementation\Builtin\images\BuiltinPrimitiveRendererFacts.DrawImage.DrawOriginalImage.png"; #if DEBUG var expectedImage = Util.LoadImage(expectedImageFilePath); Assert.True(Util.CompareImage(expectedImage, image)); #else Util.SaveImage(image, Util.UnitTestRootDir + expectedImageFilePath);//generate expected image #endif }