public void DrawOnelineText(string text) { TextPrimitive primitive = new TextPrimitive(text); BuiltinPrimitiveRenderer primitiveRenderer = new BuiltinPrimitiveRenderer(); var textMesh = new TextMesh(); primitiveRenderer.SetTextMesh(textMesh); primitiveRenderer.DrawText(primitive, new Rect(10, 10, 200, 40), new StyleRuleSet()); var image = Util.RenderTextMeshToImage(primitiveRenderer.TextMesh, new Size(200, 50)); string expectedImageFilePath = $@"GraphicsImplementation\Builtin\images\BuiltinPrimitiveRendererFacts.DrawText.DrawOnelineText_{text}.png"; #if GenerateExpectedImages Util.SaveImage(image, Util.UnitTestRootDir + expectedImageFilePath);//generate expected image #else var expectedImage = Util.LoadImage(expectedImageFilePath); Assert.True(Util.CompareImage(expectedImage, image)); #endif }
public void DrawText() { TextPrimitive primitive = new TextPrimitive(); primitive.Text = "Hello你好こんにちは"; var style = GUIStyle.Default; BuiltinPrimitiveRenderer primitiveRenderer = new BuiltinPrimitiveRenderer(); var textMesh = new TextMesh(); primitiveRenderer.SetTextMesh(textMesh); primitiveRenderer.DrawText(primitive, new Rect(10, 10, 500, 40), style.FontFamily, style.FontSize, style.FontColor, style.FontStyle, style.FontWeight); //render text var window = new Win32Window(); window.Init(new Point(100, 100), new Size(500, 400), WindowTypes.Regular); var renderer = new Win32OpenGLRenderer(); renderer.Init(window.Pointer, window.ClientSize); while (true) { window.MainLoop(() => { renderer.Clear(Color.FrameBg); Win32OpenGLRenderer.DrawTextMesh(renderer.glyphMaterial, primitiveRenderer.TextMesh, (int)window.ClientSize.Width, (int)window.ClientSize.Height); renderer.SwapBuffers(); }); if (Input.Keyboard.Instance.KeyDown(Key.Escape)) { break; } } }