public void Render(string str, Color color) { if (!buffers.ContainsKey(str)) { buffers[str] = new TextBuffer(str, brush, font); } var buffer = buffers[str]; GL.Color3(color); GL.Enable(EnableCap.Texture2D); GL.BindTexture(TextureTarget.Texture2D, buffer.TextureId); GL.Begin(BeginMode.Quads); GL.TexCoord2(0, 0); GL.Vertex2(0, 0); GL.TexCoord2(0, buffer.HeightScale); GL.Vertex2(0, buffer.ActualHeight); GL.TexCoord2(buffer.WidthScale, buffer.HeightScale); GL.Vertex2(buffer.ActualWidth, buffer.ActualHeight); GL.TexCoord2(buffer.WidthScale, 0); GL.Vertex2(buffer.ActualWidth, 0); GL.End(); GL.Disable(EnableCap.Texture2D); }
public SizeF Measure(string str) { if (!buffers.ContainsKey(str)) { buffers[str] = new TextBuffer(str, brush, font); } var buffer = buffers[str]; return new SizeF(buffer.ActualWidth, buffer.ActualHeight); }