GL error logging

This commit is contained in:
Caleb Anderson
2010-09-06 00:54:01 -05:00
committed by Chris Forbes
parent 0dddf12831
commit 4ca4d7b5dd

29
OpenRA.Gl/GraphicsDevice.cs Normal file → Executable file
View File

@@ -17,7 +17,7 @@ using Tao.Cg;
using Tao.OpenGl;
using Tao.Sdl;
[assembly: Renderer( typeof( OpenRA.GlRenderer.GraphicsDevice ))]
[assembly: Renderer(typeof(OpenRA.GlRenderer.GraphicsDevice))]
namespace OpenRA.GlRenderer
{
@@ -31,11 +31,22 @@ namespace OpenRA.GlRenderer
public Size WindowSize { get { return windowSize; } }
public enum GlError
{
GL_NO_ERROR = Gl.GL_NO_ERROR,
GL_INVALID_ENUM = Gl.GL_INVALID_ENUM,
GL_INVALID_VALUE = Gl.GL_INVALID_VALUE,
GL_STACK_OVERFLOW = Gl.GL_STACK_OVERFLOW,
GL_STACK_UNDERFLOW = Gl.GL_STACK_UNDERFLOW,
GL_OUT_OF_MEMORY = Gl.GL_OUT_OF_MEMORY,
GL_TABLE_TOO_LARGE = Gl.GL_TABLE_TOO_LARGE,
}
internal static void CheckGlError()
{
var n = Gl.glGetError();
if (n != Gl.GL_NO_ERROR)
throw new InvalidOperationException("GL Error");
throw new InvalidOperationException("GL Error: " + ((GlError)n).ToString());
}
public GraphicsDevice(int width, int height, WindowMode window, bool vsync)
@@ -48,15 +59,15 @@ namespace OpenRA.GlRenderer
Sdl.SDL_GL_SetAttribute(Sdl.SDL_GL_ALPHA_SIZE, 0);
int windowFlags = 0;
switch( window )
switch (window)
{
case WindowMode.Fullscreen:
windowFlags |= Sdl.SDL_FULLSCREEN;
break;
case WindowMode.PseudoFullscreen:
// pseudo-fullscreen only reliably works on windows; fall back to fullscreen for everyone else
windowFlags |= ( Environment.OSVersion.Platform == PlatformID.Win32NT ) ? Sdl.SDL_NOFRAME : Sdl.SDL_FULLSCREEN;
Environment.SetEnvironmentVariable( "SDL_VIDEO_WINDOW_POS", "0,0" );
windowFlags |= (Environment.OSVersion.Platform == PlatformID.Win32NT) ? Sdl.SDL_NOFRAME : Sdl.SDL_FULLSCREEN;
Environment.SetEnvironmentVariable("SDL_VIDEO_WINDOW_POS", "0,0");
break;
default:
break;
@@ -228,8 +239,8 @@ namespace OpenRA.GlRenderer
{
Event = KeyInputEvent.Down,
Modifiers = mods,
KeyChar = (char) e.key.keysym.unicode,
KeyName = Sdl.SDL_GetKeyName( e.key.keysym.sym ),
KeyChar = (char)e.key.keysym.unicode,
KeyName = Sdl.SDL_GetKeyName(e.key.keysym.sym),
VirtKey = e.key.keysym.sym
};
@@ -243,8 +254,8 @@ namespace OpenRA.GlRenderer
{
Event = KeyInputEvent.Up,
Modifiers = mods,
KeyChar = (char) e.key.keysym.unicode,
KeyName = Sdl.SDL_GetKeyName( e.key.keysym.sym ),
KeyChar = (char)e.key.keysym.unicode,
KeyName = Sdl.SDL_GetKeyName(e.key.keysym.sym),
VirtKey = e.key.keysym.sym
};