mirror of
https://github.com/Ryujinx/Opentk.git
synced 2024-12-25 16:55:28 +00:00
6bbaad8bfb
Made example source code visible for all examples in example browser. Updated Prebuild.exe to newest SVN version (resolves issues with resources). Added .rtf and .resx files to Examples project in Prebuild.xml.
124 lines
3.3 KiB
C#
124 lines
3.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using OpenTK.Graphics;
|
|
|
|
namespace Examples.WinForms
|
|
{
|
|
[Example("Font rendering (basic)", ExampleCategory.OpenTK, "Fonts", Difficulty = 1, Documentation = "FontRenderingBasic")]
|
|
public partial class FontRenderingBasic : Form
|
|
{
|
|
#region Fields
|
|
|
|
float[] sizes = new float[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 20, 24 };
|
|
List<Font> fonts = new List<Font>();
|
|
|
|
TextPrinter printer = new TextPrinter();
|
|
|
|
#endregion
|
|
|
|
#region Constructors
|
|
|
|
public FontRenderingBasic()
|
|
{
|
|
InitializeComponent();
|
|
ResizeRedraw = true;
|
|
|
|
UpdateFontList(fontDialog.Font);
|
|
glControl1_Resize(this, EventArgs.Empty);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Private Members
|
|
|
|
void UpdateFontList(Font base_font)
|
|
{
|
|
printer.Clear();
|
|
|
|
foreach (Font font in fonts)
|
|
font.Dispose();
|
|
fonts.Clear();
|
|
foreach (float size in sizes)
|
|
fonts.Add(new Font(base_font.Name, base_font.SizeInPoints + size, base_font.Style));
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Events
|
|
|
|
private void glControl1_Load(object sender, EventArgs e)
|
|
{
|
|
glControl1.MakeCurrent();
|
|
}
|
|
|
|
private void changeFont_Click(object sender, EventArgs e)
|
|
{
|
|
if (fontDialog.ShowDialog() == DialogResult.OK)
|
|
{
|
|
UpdateFontList(fontDialog.Font);
|
|
glControl1.Invalidate();
|
|
}
|
|
}
|
|
|
|
private void textBox1_TextChanged(object sender, EventArgs e)
|
|
{
|
|
glControl1.Invalidate();
|
|
}
|
|
|
|
private void glControl1_Paint(object sender, PaintEventArgs e)
|
|
{
|
|
glControl1.MakeCurrent();
|
|
GL.ClearColor(Color.MidnightBlue);
|
|
GL.Clear(ClearBufferMask.ColorBufferBit);
|
|
|
|
GL.MatrixMode(MatrixMode.Projection);
|
|
GL.LoadIdentity();
|
|
GL.Ortho(0, glControl1.ClientSize.Width, glControl1.ClientSize.Height, 0, -1, 1);
|
|
GL.MatrixMode(MatrixMode.Modelview);
|
|
GL.LoadIdentity();
|
|
|
|
foreach (Font font in fonts)
|
|
{
|
|
printer.Print(textBox1.Text, font, Color.White);
|
|
GL.Translate(0, font.Height + 5, 0);
|
|
}
|
|
|
|
glControl1.SwapBuffers();
|
|
}
|
|
|
|
private void glControl1_Resize(object sender, EventArgs e)
|
|
{
|
|
glControl1.MakeCurrent();
|
|
|
|
if (glControl1.ClientSize.Height == 0)
|
|
glControl1.ClientSize = new System.Drawing.Size(glControl1.ClientSize.Width, 1);
|
|
|
|
GL.Viewport(0, 0, glControl1.ClientSize.Width, glControl1.ClientSize.Height);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region public static void Main()
|
|
|
|
/// <summary>
|
|
/// Entry point of this example.
|
|
/// </summary>
|
|
[STAThread]
|
|
public static void Main()
|
|
{
|
|
using (FontRenderingBasic example = new FontRenderingBasic())
|
|
{
|
|
Utilities.SetWindowTitle(example);
|
|
example.ShowDialog();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|