Test all WindowBorder and WindowStyle combinations. Add instructions.

This commit is contained in:
the_fiddler 2008-04-21 20:19:12 +00:00
parent aba6cdadef
commit d54fde57b1

View file

@ -11,12 +11,16 @@ using System.Diagnostics;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;
using System.Drawing;
namespace Examples.Tests namespace Examples.Tests
{ {
[Example("GameWindow states.", ExampleCategory.Test)] [Example("GameWindow states.", ExampleCategory.Test)]
public class GameWindowStates : GameWindow public class GameWindowStates : GameWindow
{ {
TextureFont font = new TextureFont(new Font(FontFamily.GenericSansSerif, 20.0f));
TextPrinter printer = new TextPrinter();
public GameWindowStates() public GameWindowStates()
: base(800, 600) : base(800, 600)
{ {
@ -29,25 +33,55 @@ namespace Examples.Tests
void Keyboard_KeyUp(OpenTK.Input.KeyboardDevice sender, OpenTK.Input.Key key) void Keyboard_KeyUp(OpenTK.Input.KeyboardDevice sender, OpenTK.Input.Key key)
{ {
if (key == OpenTK.Input.Key.Escape) switch (key)
this.Exit();
if (key == OpenTK.Input.Key.Space)
{ {
case OpenTK.Input.Key.Escape:
this.Exit();
break;
case OpenTK.Input.Key.Number1:
switch (this.WindowState) switch (this.WindowState)
{ {
case WindowState.Normal: this.WindowState = WindowState.Maximized; break; case WindowState.Normal: this.WindowState = WindowState.Maximized; break;
case WindowState.Maximized: this.WindowState = WindowState.Minimized; break; case WindowState.Maximized: this.WindowState = WindowState.Minimized; break;
case WindowState.Minimized: this.WindowState = WindowState.Fullscreen; break; case WindowState.Minimized:
this.WindowState = WindowState.Normal;
this.WindowState = WindowState.Fullscreen;
break;
case WindowState.Fullscreen: this.WindowState = WindowState.Normal; break; case WindowState.Fullscreen: this.WindowState = WindowState.Normal; break;
} }
break;
case OpenTK.Input.Key.Number2:
this.WindowState = WindowState.Normal;
switch (this.WindowBorder)
{
case WindowBorder.Fixed: this.WindowBorder = WindowBorder.Hidden; break;
case WindowBorder.Hidden: this.WindowBorder = WindowBorder.Resizable; break;
case WindowBorder.Resizable: this.WindowBorder = WindowBorder.Fixed; break;
} }
break;
}
}
protected override void OnResize(OpenTK.Platform.ResizeEventArgs e)
{
GL.Viewport(0, 0, Width, Height);
} }
public override void OnRenderFrame(RenderFrameEventArgs e) public override void OnRenderFrame(RenderFrameEventArgs e)
{ {
GL.Clear(ClearBufferMask.ColorBufferBit); GL.Clear(ClearBufferMask.ColorBufferBit);
printer.Begin();
printer.Draw("Instructions:", font); GL.Translate(0, font.Height, 0);
printer.Draw("1 - cycle through window styles.", font); GL.Translate(0, font.Height, 0);
printer.Draw("2 - cycle through window borders.", font);
printer.End();
SwapBuffers(); SwapBuffers();
} }