public Application(OpenTK.DisplayDevice device) : base( 1920 / 2, 64, //(int)(display.Width * 0.85f), //(int)(display.Height * 0.85f), new GraphicsMode( new ColorFormat(8, 8, 8, 0), // r g b a 24, 8, 2 /* depth stencil msaa */ ), "RenderStack", OpenTK.GameWindowFlags.Default, device, 1, 5, 0, null
private OpenTK.Matrix4 WorldMatrix; // r_world_matrix public GLDevice(OpenTK.GameWindow form, OpenTK.DisplayDevice openTKDevice) : base(typeof(GLDeviceDesc), typeof(GLGraphics), typeof(GLTextureAtlas), typeof(GLModel), typeof(GLModelDesc), typeof(GLAliasModel), typeof(GLAliasModelDesc), typeof(GLTexture), typeof(GLTextureDesc)) { Form = form; OpenTKDevice = openTKDevice; TextureFilters = new GLTextureFilter[] { new GLTextureFilter("GL_NEAREST", TextureMinFilter.Nearest, TextureMagFilter.Nearest), new GLTextureFilter("GL_LINEAR", TextureMinFilter.Linear, TextureMagFilter.Linear), new GLTextureFilter("GL_NEAREST_MIPMAP_NEAREST", TextureMinFilter.NearestMipmapNearest, TextureMagFilter.Nearest), new GLTextureFilter("GL_LINEAR_MIPMAP_NEAREST", TextureMinFilter.LinearMipmapNearest, TextureMagFilter.Linear), new GLTextureFilter("GL_NEAREST_MIPMAP_LINEAR", TextureMinFilter.NearestMipmapLinear, TextureMagFilter.Nearest), new GLTextureFilter("GL_LINEAR_MIPMAP_LINEAR", TextureMinFilter.LinearMipmapLinear, TextureMagFilter.Linear) }; BlendModes = new GLTextureBlendMode[] { new GLTextureBlendMode("GL_MODULATE", TextureEnvMode.Modulate), new GLTextureBlendMode("GL_ADD", TextureEnvMode.Add), new GLTextureBlendMode("GL_REPLACE", TextureEnvMode.Replace), new GLTextureBlendMode("GL_DECAL", TextureEnvMode.Decal), new GLTextureBlendMode("GL_REPLACE_EXT", TextureEnvMode.ReplaceExt), new GLTextureBlendMode("GL_TEXTURE_ENV_BIAS_SGIX", TextureEnvMode.TextureEnvBiasSgix), new GLTextureBlendMode("GL_COMBINE", TextureEnvMode.Combine) }; PixelFormats = new GLPixelFormat[] { new GLPixelFormat("GL_LUMINANCE", PixelFormat.Luminance), new GLPixelFormat("GL_RGBA", PixelFormat.Rgba), new GLPixelFormat("GL_RGB", PixelFormat.Rgb), new GLPixelFormat("GL_BGR", PixelFormat.Bgr), new GLPixelFormat("GL_BGRA", PixelFormat.Bgra), new GLPixelFormat("GL_ALPHA", PixelFormat.Alpha) }; }
public static OpenTK.DisplayDevice ChooseDisplay(bool wantPrimary) { OpenTK.DisplayDevice chosenDisplay = null; //OpenTK.DisplayDevice.Default; List <OpenTK.DisplayIndex> indices = new List <OpenTK.DisplayIndex>(); indices.Add(OpenTK.DisplayIndex.Default); indices.Add(OpenTK.DisplayIndex.First); indices.Add(OpenTK.DisplayIndex.Second); indices.Add(OpenTK.DisplayIndex.Third); indices.Add(OpenTK.DisplayIndex.Fourth); indices.Add(OpenTK.DisplayIndex.Fifth); indices.Add(OpenTK.DisplayIndex.Sixth); foreach (var index in indices) { var display = OpenTK.DisplayDevice.GetDisplay(index); if (display == null) { continue; } if ((chosenDisplay == null) && (display.IsPrimary == wantPrimary)) { chosenDisplay = display; } if (Configuration.trace) { Trace.TraceInformation( " " + index.ToString() + " " + display.Width + " x " + display.Height + ((display == chosenDisplay) ? " (using this one)" : "") ); } } return(chosenDisplay); }
/// <summary> /// Display Graphic device informations /// </summary> public static void Diagnostic() { Trace.WriteLine("Video informations :"); Trace.Indent(); // Dll version Trace.WriteLine("System informations :"); string keybase = @"SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\"; for (int i = 0; i < 32; i++) { string key = String.Format("{0:0000}", i); Microsoft.Win32.RegistryKey hklm = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(keybase + key); if (hklm == null) { break; } Trace.WriteLine("Video card {0} - {1} :", i, (string)hklm.GetValue("DriverDesc")); Trace.Indent(); object obj = hklm.GetValue("OpenGLDriverName"); if (obj != null) { Trace.WriteLine("Driver name : {0}", ((string[])obj)[0]); } Trace.WriteLine("Driver version : {0}", (string)hklm.GetValue("DriverVersion")); string[] str = ((string)hklm.GetValue("DriverDate")).Split('-'); DateTime date = DateTime.Parse(str[1] + "-" + str[0] + "-" + str[2]); Trace.WriteLine("Driver date : {0}", date.ToLongDateString()); Trace.Unindent(); } Trace.WriteLine(); Trace.WriteLine("OpenGL informations :"); Trace.WriteLine("Graphics card vendor : {0}", Capabilities.VideoVendor); Trace.WriteLine("Renderer : {0}", Capabilities.VideoRenderer); Trace.WriteLine("OpenGL Version : {0}", Capabilities.VideoVersion); Trace.WriteLine("GLSL Version : {0}", Capabilities.ShadingLanguageVersion); Trace.WriteLine("Display modes"); Trace.Indent(); //foreach (OpenTK.DisplayDevice device in OpenTK.DisplayDevice.AvailableDisplays) foreach (OpenTK.DisplayIndex index in Enum.GetValues(typeof(OpenTK.DisplayIndex))) { OpenTK.DisplayDevice device = OpenTK.DisplayDevice.GetDisplay(index); if (device != null) { Trace.WriteLine(device.ToString()); } } Trace.Unindent(); if (Capabilities.MajorVersion <= 2) { Trace.Write("Supported extensions ({0}) : ", Capabilities.Extensions.Count); foreach (string name in Capabilities.Extensions) { Trace.Write("{0} ", name); } } else { int count = 0; TK.GL.GetInteger(TK.GetPName.NumExtensions, out count); Trace.Write("Supported extensions ({0}) : ", count); for (int i = 0; i < count; i++) { Trace.Write("{0}, ", TK.GL.GetString(TK.StringName.Extensions, i)); } } Trace.WriteLine(); Trace.Unindent(); }