public void ShowWindowWithChildWindow() { Application.InitSysDependencies(); Win32Window windowA = new Win32Window(); windowA.Init((100, 100), (300, 400), WindowTypes.Regular); windowA.Show(); Win32Window windowB = new Win32Window(windowA); windowB.Init((10, 10), (100, 100), WindowTypes.ClientAreaOnly); windowB.Show(); Win32OpenGLRenderer renderer = new Win32OpenGLRenderer(windowA); var meshA = new QuadMesh(new Rect(150, 150, 50, 50), Color.Blue); var meshB = new QuadMesh(new Rect(10, 10, 50, 50), Color.DarkBlue); while (!windowA.Closed) { windowA.MainLoop(() => { renderer.SetRenderingWindow(windowA); renderer.Clear(Color.Rgb(200, 100, 100)); Win32OpenGLRenderer.DrawMesh(OpenGLMaterial.shapeMaterial, meshA, (int)windowA.ClientSize.Width, (int)windowA.ClientSize.Height); renderer.SwapBuffers(); renderer.SetRenderingWindow(windowB); renderer.Clear(Color.Rgb(100, 200, 100)); Win32OpenGLRenderer.DrawMesh(OpenGLMaterial.shapeMaterial, meshB, (int)windowB.ClientSize.Width, (int)windowB.ClientSize.Height); renderer.SwapBuffers(); }); } }
public void StrokeAPath() { var primitive = new PathPrimitive(); primitive.PathMoveTo(new Point(10, 10)); primitive.PathLineTo(new Point(10, 100)); primitive.PathLineTo(new Point(100, 100)); primitive.PathLineTo(new Point(100, 10)); primitive.PathClose(); var primitiveRenderer = new BuiltinPrimitiveRenderer(); var brush = new Brush(); brush.LineColor = Color.Red; var mesh = new Mesh(); mesh.CommandBuffer.Add(DrawCommand.Default); primitiveRenderer.SetShapeMesh(mesh); primitiveRenderer.Stroke(primitive, brush, new StrokeStyle()); 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); while (true) { window.MainLoop(() => { renderer.Clear(Color.FrameBg); Win32OpenGLRenderer.DrawMesh(renderer.shapeMaterial, primitiveRenderer.ShapeMesh, (int)window.ClientSize.Width, (int)window.ClientSize.Height); renderer.SwapBuffers(); }); if (Input.Keyboard.Instance.KeyDown(Key.Escape)) { break; } } }
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 DrawImageMesh(Mesh imageMesh) { Win32OpenGLRenderer.DrawMesh(this.Renderer.imageMaterial, imageMesh, viewportWidth, viewportHeight); }
public void DrawShapeMesh(Mesh shapeMesh) { Win32OpenGLRenderer.DrawMesh(this.Renderer.shapeMaterial, shapeMesh, viewportWidth, viewportHeight); }