()
| 21 | private RenderSystem renderer; |
| 22 | |
| 23 | public void Run() |
| 24 | { |
| 25 | |
| 26 | try |
| 27 | { |
| 28 | // Load renderer |
| 29 | renderer = RenderSystem.Load("OpenGL", debugger); |
| 30 | |
| 31 | // Create render context |
| 32 | var contextDesc = new RenderContextDescriptor(); |
| 33 | { |
| 34 | contextDesc.VideoMode.Resolution.Width = 800; |
| 35 | contextDesc.VideoMode.Resolution.Height = 600; |
| 36 | contextDesc.VideoMode.ColorBits = 32; |
| 37 | contextDesc.VideoMode.DepthBits = 24; |
| 38 | contextDesc.VideoMode.StencilBits = 8; |
| 39 | contextDesc.Samples = 8; |
| 40 | } |
| 41 | var context = renderer.CreateRenderContext(contextDesc); |
| 42 | |
| 43 | // Get context window |
| 44 | var window = context.Surface; |
| 45 | window.Shown = true; |
| 46 | |
| 47 | window.Title = $"LLGL for C# - HelloTriangle ( {renderer.Name} )"; |
| 48 | |
| 49 | // Print renderer information |
| 50 | Console.WriteLine("Renderer Info:"); |
| 51 | var info = renderer.Info; |
| 52 | { |
| 53 | Console.WriteLine($" Renderer: {info.RendererName}"); |
| 54 | Console.WriteLine($" Device: {info.DeviceName}"); |
| 55 | Console.WriteLine($" Vendor: {info.VendorName}"); |
| 56 | Console.WriteLine($" Shading Language: {info.ShadingLanguageName}"); |
| 57 | } |
| 58 | |
| 59 | // Create vertex buffer |
| 60 | var vertexFormat = new VertexFormat(); |
| 61 | vertexFormat.AppendAttribute(new VertexAttribute("coord", Format.RGBA32Float, 0)); |
| 62 | vertexFormat.AppendAttribute(new VertexAttribute("color", Format.RGBA8UNorm, 1)); |
| 63 | |
| 64 | var vertices = new [] |
| 65 | { |
| 66 | new Vertex{ x = 0.0f, y = 0.5f, z = 0.0f, w = 1.0f, r = 255, g = 0, b = 0, a = 255 }, |
| 67 | new Vertex{ x = 0.5f, y = -0.5f, z = 0.0f, w = 1.0f, r = 0, g = 255, b = 0, a = 255 }, |
| 68 | new Vertex{ x = -0.5f, y = -0.5f, z = 0.0f, w = 1.0f, r = 0, g = 0, b = 255, a = 255 }, |
| 69 | }; |
| 70 | |
| 71 | var vertexBufferDesc = new BufferDescriptor(); |
| 72 | { |
| 73 | vertexBufferDesc.BindFlags = BindFlags.VertexBuffer; |
| 74 | vertexBufferDesc.Size = vertexFormat.Attributes[0].Stride * (ulong)vertices.Length; |
| 75 | vertexBufferDesc.VertexAttribs = vertexFormat.Attributes; |
| 76 | } |
| 77 | var vertexBuffer = renderer.CreateBuffer(vertexBufferDesc, vertices); |
| 78 | |
| 79 | // Create shaders |
| 80 | var vsDesc = new ShaderDescriptor( |
no test coverage detected