From 54dee43590a909df4995cd341fb2d3f645db4345 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Mon, 4 Jul 2011 21:13:22 +1200 Subject: [PATCH] test for required extensions in Cg renderer too --- OpenRA.Renderer.Cg/GraphicsDevice.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/OpenRA.Renderer.Cg/GraphicsDevice.cs b/OpenRA.Renderer.Cg/GraphicsDevice.cs index e6962992f0..0755c59a58 100755 --- a/OpenRA.Renderer.Cg/GraphicsDevice.cs +++ b/OpenRA.Renderer.Cg/GraphicsDevice.cs @@ -11,6 +11,7 @@ using System; using System.Drawing; using System.IO; +using System.Linq; using OpenRA.FileFormats.Graphics; using Tao.Cg; using Tao.OpenGl; @@ -119,6 +120,23 @@ namespace OpenRA.Renderer.Cg CheckGlError(); + // Test for required extensions + var required = new string[] + { + "GL_ARB_vertex_program", + "GL_ARB_fragment_program", + "GL_ARB_vertex_buffer_object", + }; + + var extensions = Gl.glGetString(Gl.GL_EXTENSIONS); + var missingExtensions = required.Where( r => !extensions.Contains(r) ).ToArray(); + + if (missingExtensions.Any()) + { + WriteGraphicsLog("Unsupported GPU: Missing extensions: {0}".F(string.Join(",", missingExtensions))); + throw new InvalidProgramException("Unsupported GPU. See graphics.log for details."); + } + windowSize = size; cgContext = Tao.Cg.Cg.cgCreateContext();