protected override DriverConfiguration RegisterDrivers() => DriverConfiguration.Initialise ( "JankWorks.Glfw", "JankWorks.DotNet", "JankWorks.FreeType", "JankWorks.OpenGL", "JankWorks.OpenAL" );
static void Main(string[] args) { DriverConfiguration.Initialise("JankWorks.Glfw", "JankWorks.OpenGL"); var windowsettings = WindowSettings.Default; var surfacesettings = new SurfaceSettings() { ClearColour = Colour.Black, Size = windowsettings.DisplayMode.Viewport.Size }; using var window = Window.Create(windowsettings); using var device = GraphicsDevice.Create(surfacesettings, window); using var buffer = device.CreateVertexBuffer <Vertex>(); buffer.Usage = BufferUsage.Static; Vertex[] vertices = { new Vertex(new Vector2(-0.5f, -0.5f), Colour.Green), new Vertex(new Vector2(0.0f, 0.5f), Colour.Red), new Vertex(new Vector2(0.5f, -0.5f), Colour.Blue), }; buffer.Write(vertices); using var layout = device.CreateVertexLayout(); var positionAttrib = new VertexAttribute() { Format = VertexAttributeFormat.Vector2f, Stride = Marshal.SizeOf <Vertex>(), Offset = 0, Index = 0, Usage = VertexAttributeUsage.Position }; var colourAttrib = new VertexAttribute() { Format = VertexAttributeFormat.Vector3f, Stride = Marshal.SizeOf <Vertex>(), Offset = Marshal.SizeOf <Vector2>(), Index = 1, Usage = VertexAttributeUsage.Colour }; layout.SetAttribute(positionAttrib); layout.SetAttribute(colourAttrib); using var shader = device.CreateShader(ShaderFormat.GLSL, VertexSource, FragSource); shader.SetVertexData(buffer, layout); window.OnKeyPressed += (keypress) => { if (keypress.Key == Key.Enter) { window.Close(); } }; window.Show(); while (window.IsOpen) { window.ProcessEvents(); device.Clear(); device.DrawPrimitives(shader, DrawPrimitiveType.Triangles, 0, 3); device.Display(); } }
static void Main(string[] args) { DriverConfiguration.Initialise("JankWorks.Glfw", "JankWorks.OpenGL", "JankWorks.FreeType", "JankWorks.DotNet", "JankWorks.OpenAL"); var windowsettings = WindowSettings.Default; windowsettings.DisplayMode = new DisplayMode(1024, 768, 32, 60); windowsettings.VSync = true; windowsettings.Style = WindowStyle.Windowed; var surfacesettings = new SurfaceSettings() { ClearColour = Colour.Black, Size = windowsettings.DisplayMode.Viewport.Size }; using var window = Window.Create(windowsettings); using var graphics = GraphicsDevice.Create(surfacesettings, window); using var audio = AudioDevice.GetDefault(); var tests = Runner.GetTestClasses().GetEnumerator(); var testsRemaining = tests.MoveNext(); Test test = null; if (testsRemaining) { test = (Test)Activator.CreateInstance(tests.Current); test.Setup(graphics, audio, window); } window.OnKeyReleased += (ke) => { if (ke.Key == Key.Escape) { window.Close(); } else if (ke.Key == Key.Enter) { testsRemaining = tests.MoveNext(); if (testsRemaining) { test?.Dispose(graphics, audio, window); test = (Test)Activator.CreateInstance(tests.Current); test.Setup(graphics, audio, window); GC.Collect(); } } }; window.Show(); while (window.IsOpen) { window.ProcessEvents(); graphics.Clear(); test?.Draw(graphics); graphics.Display(); } window.Hide(); }