From a2498168650034f54a64bdf083197a7709a6fc4c Mon Sep 17 00:00:00 2001 From: the_fiddler Date: Sat, 2 Feb 2008 00:23:06 +0000 Subject: [PATCH] Updated FBO specs with specific enums. Fixed GL.Ext.CheckFramebufferStatus (was CheckFramebufferStat before) Moved default namespace to OpenTK.Graphics.OpenGL. Moved OpenTK.Graphics.OpenGL.Enums to OpenTK.Graphics.OpenGL. --- Source/Bind/GL2/Generator.cs | 23 ++- Source/Bind/Settings.cs | 12 +- Source/Bind/Specifications/GL2/enumext.spec | 186 ++++++++++++++------ Source/Bind/Specifications/GL2/gl.spec | 16 +- Source/Bind/Structures/Function.cs | 2 +- 5 files changed, 162 insertions(+), 77 deletions(-) diff --git a/Source/Bind/GL2/Generator.cs b/Source/Bind/GL2/Generator.cs index 26345f3a..a5400014 100644 --- a/Source/Bind/GL2/Generator.cs +++ b/Source/Bind/GL2/Generator.cs @@ -461,14 +461,15 @@ namespace Bind.GL2 using (BindStreamWriter sw = new BindStreamWriter(Path.Combine(Settings.OutputPath, enumsFile))) { - sw.WriteLine("namespace {0}", Settings.OutputNamespace); - sw.WriteLine("{"); - - sw.Indent(); if ((Settings.Compatibility & Settings.Legacy.NestedEnums) != Settings.Legacy.None) + { + sw.WriteLine("namespace {0}", Settings.OutputNamespace); + sw.WriteLine("{"); + sw.Indent(); sw.WriteLine("static partial class {0}", Settings.OutputClass); + } else - sw.WriteLine("namespace {0}", Settings.EnumsNamespace); + sw.WriteLine("namespace {0}", Settings.EnumsOutput); sw.WriteLine("{"); @@ -476,8 +477,11 @@ namespace Bind.GL2 WriteEnums(sw, Bind.Structures.Enum.GLEnums); sw.Unindent(); - sw.WriteLine("}"); - sw.Unindent(); + if ((Settings.Compatibility & Settings.Legacy.NestedEnums) != Settings.Legacy.None) + { + sw.WriteLine("}"); + sw.Unindent(); + } sw.WriteLine("}"); } @@ -682,13 +686,14 @@ namespace Bind.GL2 public void WriteEnums(BindStreamWriter sw, EnumCollection enums) { - sw.WriteLine("#pragma warning disable 3019"); // CLSCompliant attribute + //sw.WriteLine("#pragma warning disable 3019"); // CLSCompliant attribute sw.WriteLine("#pragma warning disable 1591"); // Missing doc comments + sw.WriteLine(); if ((Settings.Compatibility & Settings.Legacy.NestedEnums) != Settings.Legacy.None) Trace.WriteLine(String.Format("Writing enums to:\t{0}.{1}.{2}", Settings.OutputNamespace, Settings.OutputClass, Settings.NestedEnumsClass)); else - Trace.WriteLine(String.Format("Writing enums to:\t{0}.{1}", Settings.OutputNamespace, Settings.EnumsNamespace)); + Trace.WriteLine(String.Format("Writing enums to:\t{0}", Settings.EnumsOutput)); if ((Settings.Compatibility & Settings.Legacy.ConstIntEnums) == Settings.Legacy.None) { diff --git a/Source/Bind/Settings.cs b/Source/Bind/Settings.cs index 4e857fd3..2392f86f 100644 --- a/Source/Bind/Settings.cs +++ b/Source/Bind/Settings.cs @@ -12,13 +12,13 @@ namespace Bind { static class Settings { - public static string InputPath = "..\\..\\..\\Source\\Bind\\Specifications"; - public static string OutputPath = "..\\..\\..\\Source\\OpenTK\\OpenGL\\Bindings"; - public static string OutputNamespace = "OpenTK.OpenGL"; + public static string InputPath = DefaultInputPath; + public static string OutputPath = DefaultOutputPath; + public static string OutputNamespace = DefaultOutputNamespace; public const string DefaultInputPath = "..\\..\\..\\Source\\Bind\\Specifications"; public const string DefaultOutputPath = "..\\..\\..\\Source\\OpenTK\\OpenGL\\Bindings"; - public const string DefaultOutputNamespace = "OpenTK.OpenGL"; + public const string DefaultOutputNamespace = "OpenTK.Graphics.OpenGL"; public static string GLClass = "GL"; // Needed by Glu for the AuxEnumsClass. Can be set through -gl:"xxx". public static string OutputClass = "GL"; // The real output class. Can be set through -class:"xxx". @@ -52,7 +52,7 @@ namespace Bind if ((Settings.Compatibility & Settings.Legacy.NestedEnums) != Settings.Legacy.None) return OutputNamespace + "." + OutputClass + "." + NestedEnumsClass; else - return OutputNamespace + "." + EnumsNamespace; + return String.IsNullOrEmpty(EnumsNamespace) ? OutputNamespace : OutputNamespace + "." + EnumsNamespace; } } @@ -68,7 +68,7 @@ namespace Bind } // New enums namespace (no nested class). - public static string EnumsNamespace = "Enums"; + public static string EnumsNamespace;// = "Enums"; public static string DelegatesClass = "Delegates"; public static string ImportsClass = "Imports"; diff --git a/Source/Bind/Specifications/GL2/enumext.spec b/Source/Bind/Specifications/GL2/enumext.spec index bdaf54ad..1f47330d 100644 --- a/Source/Bind/Specifications/GL2/enumext.spec +++ b/Source/Bind/Specifications/GL2/enumext.spec @@ -144,7 +144,9 @@ TextureParameterName enum: use GetTextureParameter TEXTURE_MAX_LEVEL use GetTextureParameter TEXTURE_DEPTH use GetTextureParameter TEXTURE_WRAP_R - + +TextureWrapMode enum: + CLAMP_TO_EDGE = 0x812F # Equivalent to SGIS_texture_edge_clamp PixelStoreParameter enum: PACK_SKIP_IMAGES = 0x806B # 1 I @@ -347,6 +349,9 @@ BlendEquationMode enum: TextureParameterName enum: CLAMP_TO_BORDER = 0x812D # Promoted from ARB_texture_border_clamp +TextureWrapMode enum: + CLAMP_TO_BORDER = 0x812D # Promoted from ARB_texture_border_clamp + # Multisample (http://www.opengl.org/registry/specs/ARB/multisample.txt) EnableCap enum: MULTISAMPLE = 0x809D # Promoted from ARB_multisample @@ -4812,63 +4817,138 @@ NV_vertex_program3 enum: ############################################################################### # Extension #310 -EXT_framebuffer_object enum: - INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506 - MAX_RENDERBUFFER_SIZE_EXT = 0x84E8 - FRAMEBUFFER_BINDING_EXT = 0x8CA6 - RENDERBUFFER_BINDING_EXT = 0x8CA7 - FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0 - FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1 - FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2 - FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3 - FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4 - FRAMEBUFFER_COMPLETE_EXT = 0x8CD5 - FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6 - FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7 +#EXT_framebuffer_object enum: +# INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506 +# MAX_RENDERBUFFER_SIZE_EXT = 0x84E8 +# FRAMEBUFFER_BINDING_EXT = 0x8CA6 +# RENDERBUFFER_BINDING_EXT = 0x8CA7 +# FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0 +# FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1 +# FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2 +# FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3 +# FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4 +# FRAMEBUFFER_COMPLETE_EXT = 0x8CD5 +# FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6 +# FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7 ## Removed 2005/09/26 in revision #117 of the extension: ## FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = 0x8CD8 - FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9 - FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA - FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB - FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC - FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD +# FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9 +# FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA +# FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB +# FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC +# FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD ## Removed 2005/05/31 in revision #113 of the extension: ## FRAMEBUFFER_STATUS_ERROR_EXT = 0x8CDE - MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF - COLOR_ATTACHMENT0_EXT = 0x8CE0 - COLOR_ATTACHMENT1_EXT = 0x8CE1 - COLOR_ATTACHMENT2_EXT = 0x8CE2 - COLOR_ATTACHMENT3_EXT = 0x8CE3 - COLOR_ATTACHMENT4_EXT = 0x8CE4 - COLOR_ATTACHMENT5_EXT = 0x8CE5 - COLOR_ATTACHMENT6_EXT = 0x8CE6 - COLOR_ATTACHMENT7_EXT = 0x8CE7 - COLOR_ATTACHMENT8_EXT = 0x8CE8 - COLOR_ATTACHMENT9_EXT = 0x8CE9 - COLOR_ATTACHMENT10_EXT = 0x8CEA - COLOR_ATTACHMENT11_EXT = 0x8CEB - COLOR_ATTACHMENT12_EXT = 0x8CEC - COLOR_ATTACHMENT13_EXT = 0x8CED - COLOR_ATTACHMENT14_EXT = 0x8CEE - COLOR_ATTACHMENT15_EXT = 0x8CEF - DEPTH_ATTACHMENT_EXT = 0x8D00 - STENCIL_ATTACHMENT_EXT = 0x8D20 - FRAMEBUFFER_EXT = 0x8D40 - RENDERBUFFER_EXT = 0x8D41 - RENDERBUFFER_WIDTH_EXT = 0x8D42 - RENDERBUFFER_HEIGHT_EXT = 0x8D43 - RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44 +# MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF +# COLOR_ATTACHMENT0_EXT = 0x8CE0 +# COLOR_ATTACHMENT1_EXT = 0x8CE1 +# COLOR_ATTACHMENT2_EXT = 0x8CE2 +# COLOR_ATTACHMENT3_EXT = 0x8CE3 +# COLOR_ATTACHMENT4_EXT = 0x8CE4 +# COLOR_ATTACHMENT5_EXT = 0x8CE5 +# COLOR_ATTACHMENT6_EXT = 0x8CE6 +# COLOR_ATTACHMENT7_EXT = 0x8CE7 +# COLOR_ATTACHMENT8_EXT = 0x8CE8 +# COLOR_ATTACHMENT9_EXT = 0x8CE9 +# COLOR_ATTACHMENT10_EXT = 0x8CEA +# COLOR_ATTACHMENT11_EXT = 0x8CEB +# COLOR_ATTACHMENT12_EXT = 0x8CEC +# COLOR_ATTACHMENT13_EXT = 0x8CED +# COLOR_ATTACHMENT14_EXT = 0x8CEE +# COLOR_ATTACHMENT15_EXT = 0x8CEF +# DEPTH_ATTACHMENT_EXT = 0x8D00 +# STENCIL_ATTACHMENT_EXT = 0x8D20 +# FRAMEBUFFER_EXT = 0x8D40 +# RENDERBUFFER_EXT = 0x8D41 +# RENDERBUFFER_WIDTH_EXT = 0x8D42 +# RENDERBUFFER_HEIGHT_EXT = 0x8D43 +# RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44 # removed STENCIL_INDEX_EXT = 0x8D45 in rev. #114 of the spec - STENCIL_INDEX1_EXT = 0x8D46 - STENCIL_INDEX4_EXT = 0x8D47 - STENCIL_INDEX8_EXT = 0x8D48 - STENCIL_INDEX16_EXT = 0x8D49 - RENDERBUFFER_RED_SIZE_EXT = 0x8D50 - RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51 - RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52 - RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53 - RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54 - RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55 +# STENCIL_INDEX1_EXT = 0x8D46 +# STENCIL_INDEX4_EXT = 0x8D47 +# STENCIL_INDEX8_EXT = 0x8D48 +# STENCIL_INDEX16_EXT = 0x8D49 +# RENDERBUFFER_RED_SIZE_EXT = 0x8D50 +# RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51 +# RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52 +# RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53 +# RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54 +# RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55 + +GenerateMipmapTarget enum: + use TextureTarget TEXTURE_1D + use TextureTarget TEXTURE_2D + use TextureTarget TEXTURE_3D + use TextureTarget TEXTURE_CUBE_MAP + +FramebufferTarget enum: + FRAMEBUFFER_EXT = 0x8D40 + +RenderbufferTarget enum: + RENDERBUFFER_EXT = 0x8D41 + +RenderbufferStorage enum: + STENCIL_INDEX1_EXT = 0x8D46 + STENCIL_INDEX4_EXT = 0x8D47 + STENCIL_INDEX8_EXT = 0x8D48 + STENCIL_INDEX16_EXT = 0x8D49 + +FramebufferErrorCode enum: + FRAMEBUFFER_COMPLETE_EXT = 0x8CD5 + FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6 + FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7 + FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9 + FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA + FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB + FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC + FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD + +FramebufferAttachment enum: + COLOR_ATTACHMENT0_EXT = 0x8CE0 + COLOR_ATTACHMENT1_EXT = 0x8CE1 + COLOR_ATTACHMENT2_EXT = 0x8CE2 + COLOR_ATTACHMENT3_EXT = 0x8CE3 + COLOR_ATTACHMENT4_EXT = 0x8CE4 + COLOR_ATTACHMENT5_EXT = 0x8CE5 + COLOR_ATTACHMENT6_EXT = 0x8CE6 + COLOR_ATTACHMENT7_EXT = 0x8CE7 + COLOR_ATTACHMENT8_EXT = 0x8CE8 + COLOR_ATTACHMENT9_EXT = 0x8CE9 + COLOR_ATTACHMENT10_EXT = 0x8CEA + COLOR_ATTACHMENT11_EXT = 0x8CEB + COLOR_ATTACHMENT12_EXT = 0x8CEC + COLOR_ATTACHMENT13_EXT = 0x8CED + COLOR_ATTACHMENT14_EXT = 0x8CEE + COLOR_ATTACHMENT15_EXT = 0x8CEF + DEPTH_ATTACHMENT_EXT = 0x8D00 + STENCIL_ATTACHMENT_EXT = 0x8D20 + +FramebufferParameterName enum: + FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0 + FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1 + FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2 + FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3 + FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4 + +RenderbufferParameterName enum: + RENDERBUFFER_WIDTH_EXT = 0x8D42 + RENDERBUFFER_HEIGHT_EXT = 0x8D43 + RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44 + RENDERBUFFER_RED_SIZE_EXT = 0x8D50 + RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51 + RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52 + RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53 + RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54 + RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55 + +GetPName enum: + FRAMEBUFFER_BINDING_EXT = 0x8CA6 + RENDERBUFFER_BINDING_EXT = 0x8CA7 + MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF + MAX_RENDERBUFFER_SIZE_EXT = 0x84E8 + +ErrorCode enum: + INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506 ############################################################################### diff --git a/Source/Bind/Specifications/GL2/gl.spec b/Source/Bind/Specifications/GL2/gl.spec index 74e4de33..981eb5a5 100644 --- a/Source/Bind/Specifications/GL2/gl.spec +++ b/Source/Bind/Specifications/GL2/gl.spec @@ -20235,7 +20235,7 @@ GenRenderbuffersEXT(n, renderbuffers) RenderbufferStorageEXT(target, internalformat, width, height) return void param target RenderbufferTarget in value - param internalformat GLenum in value + param internalformat RenderbufferStorage in value # GLenum in value param width SizeI in value param height SizeI in value category EXT_framebuffer_object @@ -20249,7 +20249,7 @@ RenderbufferStorageEXT(target, internalformat, width, height) GetRenderbufferParameterivEXT(target, pname, params) return void param target RenderbufferTarget in value - param pname GLenum in value + param pname RenderbufferParameterName in value # GLenum in value param params Int32 out array [COMPSIZE(pname)] category EXT_framebuffer_object dlflags notlistable @@ -20309,7 +20309,7 @@ GenFramebuffersEXT(n, framebuffers) offset ? CheckFramebufferStatusEXT(target) - return GLenum + return FramebufferErrorCode param target FramebufferTarget in value category EXT_framebuffer_object version 1.2 @@ -20323,7 +20323,7 @@ FramebufferTexture1DEXT(target, attachment, textarget, texture, level) return void param target FramebufferTarget in value param attachment FramebufferAttachment in value - param textarget GLenum in value + param textarget TextureTarget in value # GLenum in value param texture UInt32 in value param level Int32 in value category EXT_framebuffer_object @@ -20338,7 +20338,7 @@ FramebufferTexture2DEXT(target, attachment, textarget, texture, level) return void param target FramebufferTarget in value param attachment FramebufferAttachment in value - param textarget GLenum in value + param textarget TextureTarget in value # GLenum in value param texture UInt32 in value param level Int32 in value category EXT_framebuffer_object @@ -20353,7 +20353,7 @@ FramebufferTexture3DEXT(target, attachment, textarget, texture, level, zoffset) return void param target FramebufferTarget in value param attachment FramebufferAttachment in value - param textarget GLenum in value + param textarget TextureTarget in value # GLenum in value param texture UInt32 in value param level Int32 in value param zoffset Int32 in value @@ -20383,7 +20383,7 @@ GetFramebufferAttachmentParameterivEXT(target, attachment, pname, params) return void param target FramebufferTarget in value param attachment FramebufferAttachment in value - param pname GLenum in value + param pname FramebufferParameterName in value # GLenum in value param params Int32 out array [COMPSIZE(pname)] category EXT_framebuffer_object dlflags notlistable @@ -20397,7 +20397,7 @@ GetFramebufferAttachmentParameterivEXT(target, attachment, pname, params) GenerateMipmapEXT(target) return void - param target GLenum in value + param target GenerateMipmapTarget in value # GLenum in value category EXT_framebuffer_object version 1.2 extension diff --git a/Source/Bind/Structures/Function.cs b/Source/Bind/Structures/Function.cs index cbee23c7..c20c7cf0 100644 --- a/Source/Bind/Structures/Function.cs +++ b/Source/Bind/Structures/Function.cs @@ -32,7 +32,7 @@ namespace Bind.Structures #endregion static Regex endings = new Regex(@"((([df]|u?[isb])v?)|v)", RegexOptions.Compiled | RegexOptions.RightToLeft); - static Regex endingsNotToTrim = new Regex("(ib|[tdrey]s|[eE]n[vd]|bled|Flagv|Tess)", RegexOptions.Compiled | RegexOptions.RightToLeft); + static Regex endingsNotToTrim = new Regex("(ib|[tdrey]s|[eE]n[vd]|bled|Flagv|Tess|Status)", RegexOptions.Compiled | RegexOptions.RightToLeft); /// /// Add a trailing v to functions matching this regex. Used to differntiate between overloads taking both