mirror of
https://github.com/Ryujinx/Opentk.git
synced 2025-02-24 04:26:57 +00:00
This commit is contained in:
parent
b3a5341848
commit
7096709104
24
OpenTK.sln
24
OpenTK.sln
|
@ -10,12 +10,25 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Documentation", "Documentat
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Specifications", "Specifications", "{B23A6DCD-9FE9-4523-95FB-01C8D4631555}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Specifications", "Specifications", "{B23A6DCD-9FE9-4523-95FB-01C8D4631555}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
Specifications\cs_types.txt = Specifications\cs_types.txt
|
Specifications\csharp.tm = Specifications\csharp.tm
|
||||||
Specifications\enum.spec = Specifications\enum.spec
|
Specifications\enum.spec = Specifications\enum.spec
|
||||||
Specifications\enumext.spec = Specifications\enumext.spec
|
Specifications\enumext.spec = Specifications\enumext.spec
|
||||||
|
Specifications\enumglu.spec = Specifications\enumglu.spec
|
||||||
Specifications\gl.spec = Specifications\gl.spec
|
Specifications\gl.spec = Specifications\gl.spec
|
||||||
Specifications\gl_types.txt = Specifications\gl_types.txt
|
Specifications\gl.tm = Specifications\gl.tm
|
||||||
|
Specifications\glu.spec = Specifications\glu.spec
|
||||||
|
Specifications\glx.spec = Specifications\glx.spec
|
||||||
|
Specifications\glx.tm = Specifications\glx.tm
|
||||||
|
Specifications\glxenum.spec = Specifications\glxenum.spec
|
||||||
|
Specifications\glxenumext.spec = Specifications\glxenumext.spec
|
||||||
|
Specifications\glxext.spec = Specifications\glxext.spec
|
||||||
Specifications\try.spec = Specifications\try.spec
|
Specifications\try.spec = Specifications\try.spec
|
||||||
|
Specifications\TypeMap.txt = Specifications\TypeMap.txt
|
||||||
|
Specifications\wgl.spec = Specifications\wgl.spec
|
||||||
|
Specifications\wgl.tm = Specifications\wgl.tm
|
||||||
|
Specifications\wglenum.spec = Specifications\wglenum.spec
|
||||||
|
Specifications\wglenumext.spec = Specifications\wglenumext.spec
|
||||||
|
Specifications\wglext.spec = Specifications\wglext.spec
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Projects", "Projects", "{E9FF51BB-295E-4891-AA30-D1374F26DCE0}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Projects", "Projects", "{E9FF51BB-295E-4891-AA30-D1374F26DCE0}"
|
||||||
|
@ -47,6 +60,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OpenGL", "OpenGL", "{70FA6E
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GLSL.Lesson01", "Source\Examples\OpenGL\GLSL\Lesson01\GLSL.Lesson01.csproj", "{46980D11-67FA-4B33-903F-BC9D8A4FE60F}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GLSL.Lesson01", "Source\Examples\OpenGL\GLSL\Lesson01\GLSL.Lesson01.csproj", "{46980D11-67FA-4B33-903F-BC9D8A4FE60F}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTK.Platform.X", "Source\Platform\X\OpenTK.Platform.X.csproj", "{E3F35BD6-67CE-4AD5-AB98-043CF072A75A}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
@ -69,6 +84,10 @@ Global
|
||||||
{46980D11-67FA-4B33-903F-BC9D8A4FE60F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{46980D11-67FA-4B33-903F-BC9D8A4FE60F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{46980D11-67FA-4B33-903F-BC9D8A4FE60F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{46980D11-67FA-4B33-903F-BC9D8A4FE60F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{46980D11-67FA-4B33-903F-BC9D8A4FE60F}.Release|Any CPU.Build.0 = Release|Any CPU
|
{46980D11-67FA-4B33-903F-BC9D8A4FE60F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{E3F35BD6-67CE-4AD5-AB98-043CF072A75A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{E3F35BD6-67CE-4AD5-AB98-043CF072A75A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{E3F35BD6-67CE-4AD5-AB98-043CF072A75A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{E3F35BD6-67CE-4AD5-AB98-043CF072A75A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
@ -82,6 +101,7 @@ Global
|
||||||
{30996477-EDDE-4E45-AB3D-5E466314C755} = {7E640424-E2CD-4DD5-9392-7A706D73930E}
|
{30996477-EDDE-4E45-AB3D-5E466314C755} = {7E640424-E2CD-4DD5-9392-7A706D73930E}
|
||||||
{2F3FEAD4-0FBD-48CC-AFA0-29FFF28284C2} = {7E640424-E2CD-4DD5-9392-7A706D73930E}
|
{2F3FEAD4-0FBD-48CC-AFA0-29FFF28284C2} = {7E640424-E2CD-4DD5-9392-7A706D73930E}
|
||||||
{FDFA00B6-FA81-4658-86E1-F312EFB42E1C} = {50DCE788-72FC-47E0-A6BD-50BCCE3FCE5B}
|
{FDFA00B6-FA81-4658-86E1-F312EFB42E1C} = {50DCE788-72FC-47E0-A6BD-50BCCE3FCE5B}
|
||||||
|
{E3F35BD6-67CE-4AD5-AB98-043CF072A75A} = {50DCE788-72FC-47E0-A6BD-50BCCE3FCE5B}
|
||||||
{836876D1-0C8D-4240-BEE4-859D9D3D46CB} = {2F3FEAD4-0FBD-48CC-AFA0-29FFF28284C2}
|
{836876D1-0C8D-4240-BEE4-859D9D3D46CB} = {2F3FEAD4-0FBD-48CC-AFA0-29FFF28284C2}
|
||||||
{1EDDE592-3923-4898-9006-3D69579E1745} = {2F3FEAD4-0FBD-48CC-AFA0-29FFF28284C2}
|
{1EDDE592-3923-4898-9006-3D69579E1745} = {2F3FEAD4-0FBD-48CC-AFA0-29FFF28284C2}
|
||||||
{70FA6EE8-62C6-437F-AD82-117F2D9CDE68} = {C6E60A87-12B4-444A-BE03-7E980EAC0172}
|
{70FA6EE8-62C6-437F-AD82-117F2D9CDE68} = {C6E60A87-12B4-444A-BE03-7E980EAC0172}
|
||||||
|
|
|
@ -8,7 +8,6 @@ using System.Text;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Security;
|
using System.Security;
|
||||||
using System.Security.Permissions;
|
using System.Security.Permissions;
|
||||||
//using Settings = Tao.OpenGl.Bind.Properties.Bind;
|
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
@ -48,7 +47,7 @@ namespace OpenTK.OpenGL.Bind
|
||||||
Settings.OutputPath = b[1];
|
Settings.OutputPath = b[1];
|
||||||
break;
|
break;
|
||||||
case "class":
|
case "class":
|
||||||
Settings.OutputClass = b[1];
|
Settings.GLClass = b[1];
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new ArgumentException("Argument " + a + " not recognized. Use the '/?' switch for help.");
|
throw new ArgumentException("Argument " + a + " not recognized. Use the '/?' switch for help.");
|
||||||
|
@ -73,10 +72,11 @@ namespace OpenTK.OpenGL.Bind
|
||||||
{
|
{
|
||||||
long ticks = System.DateTime.Now.Ticks;
|
long ticks = System.DateTime.Now.Ticks;
|
||||||
|
|
||||||
|
// GL binding generation.
|
||||||
List<Function> wrappers;
|
List<Function> wrappers;
|
||||||
List<Function> functions = SpecReader.ReadFunctionSpecs("gl.spec");
|
List<Function> functions = SpecReader.ReadFunctionSpecs("gl.spec");
|
||||||
Hashtable enums = SpecReader.ReadEnumSpecs("enum.spec");
|
Hashtable enums = SpecReader.ReadEnumSpecs("enum.spec");
|
||||||
Hashtable enums2= SpecReader.ReadEnumSpecs("enumext.spec");
|
Hashtable enums2 = SpecReader.ReadEnumSpecs("enumext.spec");
|
||||||
foreach (Enum e in enums2.Values)
|
foreach (Enum e in enums2.Values)
|
||||||
if (!enums.ContainsKey(e.Name))
|
if (!enums.ContainsKey(e.Name))
|
||||||
enums.Add(e.Name, e);
|
enums.Add(e.Name, e);
|
||||||
|
@ -87,18 +87,24 @@ namespace OpenTK.OpenGL.Bind
|
||||||
((Enum)enums[e.Name]).ConstantCollection.Add(c.Name, c);
|
((Enum)enums[e.Name]).ConstantCollection.Add(c.Name, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
Translation.GLtypes = SpecReader.ReadTypeMap("gl.tm");
|
Translation.GLTypes = SpecReader.ReadTypeMap("gl.tm");
|
||||||
Translation.CStypes = SpecReader.ReadTypeMap("cs_types.txt");
|
Translation.CSTypes = SpecReader.ReadTypeMap("csharp.tm");
|
||||||
|
|
||||||
Translation.TranslateFunctions(functions, enums, out wrappers);
|
Translation.TranslateFunctions(functions, enums, out wrappers);
|
||||||
Translation.TranslateEnums(enums);
|
Translation.TranslateEnums(enums);
|
||||||
|
|
||||||
SpecWriter.WriteSpecs(Settings.OutputPath, functions, wrappers, enums);
|
SpecWriter.WriteSpecs(Settings.OutputPath, Settings.GLClass, functions, wrappers, enums);
|
||||||
|
|
||||||
ContextWriter.WriteMainContext(Settings.OutputPath, functions);
|
ContextWriter.WriteMainContext(Settings.OutputPath, "GLContext", Settings.GLClass, functions);
|
||||||
ContextWriter.WriteDerivedContext(Settings.OutputPath, "WindowsContext", functions, "1.0", "1.1");
|
ContextWriter.WriteDerivedContext(Settings.OutputPath, "WindowsContext", Settings.GLClass, functions, "1.0", "1.1");
|
||||||
ContextWriter.WriteDerivedContext(Settings.OutputPath, "WindowsVistaContext", functions, "1.0", "1.1", "1.2", "1.3", "1.4");
|
ContextWriter.WriteDerivedContext(Settings.OutputPath, "WindowsVistaContext", Settings.GLClass, functions, "1.0", "1.1", "1.2", "1.3", "1.4");
|
||||||
ContextWriter.WriteDerivedContext(Settings.OutputPath, "X11Context", functions, "1.0", "1.1", "1.2", "1.3", "1.4", "1.5", "2.0");
|
ContextWriter.WriteDerivedContext(Settings.OutputPath, "X11Context", Settings.GLClass, functions, "1.0", "1.1", "1.2", "1.3", "1.4", "1.5", "2.0");
|
||||||
|
|
||||||
|
// GLX binding generation.
|
||||||
|
//Translation.GLXTypes = SpecReader.ReadTypeMap("glx.tm"); // Works semi-ok.
|
||||||
|
//functions = SpecReader.ReadFunctionSpecs("glx.spec"); // Works ok!
|
||||||
|
//Hashtable enums = SpecReader.ReadEnumSpecs("glxenum.spec"); // Works ok!
|
||||||
|
//SpecWriter.WriteSpecs(Settings.OutputPath, "Glx", functions, null, enums); // Needs updating.
|
||||||
|
|
||||||
ticks = System.DateTime.Now.Ticks - ticks;
|
ticks = System.DateTime.Now.Ticks - ticks;
|
||||||
|
|
||||||
|
@ -109,11 +115,6 @@ namespace OpenTK.OpenGL.Bind
|
||||||
Console.WriteLine("Security violation \"{0}\" in method \"{1}\".", e.Message, e.Method);
|
Console.WriteLine("Security violation \"{0}\" in method \"{1}\".", e.Message, e.Method);
|
||||||
Console.WriteLine("This application does not have permission to take the requested actions.");
|
Console.WriteLine("This application does not have permission to take the requested actions.");
|
||||||
}
|
}
|
||||||
//finally
|
|
||||||
//{
|
|
||||||
// Console.WriteLine("Press any key to continue...");
|
|
||||||
// Console.ReadKey(false);
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
|
||||||
// Build Number
|
// Build Number
|
||||||
// Revision
|
// Revision
|
||||||
//
|
//
|
||||||
[assembly: AssemblyVersion("0.7.5.2")]
|
[assembly: AssemblyVersion("0.7.6.0")]
|
||||||
[assembly: AssemblyFileVersion("0.7.5.2")]
|
[assembly: AssemblyFileVersion("0.7.6.0")]
|
||||||
|
|
|
@ -13,7 +13,7 @@ namespace OpenTK.OpenGL.Bind
|
||||||
{
|
{
|
||||||
public static string InputPath = "..\\..\\Specifications";
|
public static string InputPath = "..\\..\\Specifications";
|
||||||
public static string OutputPath = "..\\..\\Source\\OpenGL\\OpenGL\\Bindings";
|
public static string OutputPath = "..\\..\\Source\\OpenGL\\OpenGL\\Bindings";
|
||||||
public static string OutputClass = "GL";
|
public static string GLClass = "GL";
|
||||||
public static string OutputNamespace = "OpenTK.OpenGL";
|
public static string OutputNamespace = "OpenTK.OpenGL";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ namespace OpenTK.OpenGL.Bind
|
||||||
{
|
{
|
||||||
sb.AppendLine(" " + c.Name + " = " + c.Value + ",");
|
sb.AppendLine(" " + c.Name + " = " + c.Value + ",");
|
||||||
}
|
}
|
||||||
sb.AppendLine(" }");
|
sb.AppendLine(" }");
|
||||||
|
|
||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,16 +34,23 @@ namespace OpenTK.OpenGL.Bind
|
||||||
|
|
||||||
static Dictionary<string, string> parameter_names = new Dictionary<string, string>();
|
static Dictionary<string, string> parameter_names = new Dictionary<string, string>();
|
||||||
|
|
||||||
|
#region GL types dictionary
|
||||||
|
|
||||||
private static Dictionary<string, string> _gl_types;
|
private static Dictionary<string, string> _gl_types;
|
||||||
public static Dictionary<string, string> GLtypes
|
|
||||||
|
public static Dictionary<string, string> GLTypes
|
||||||
{
|
{
|
||||||
get { return Translation._gl_types; }
|
get { return Translation._gl_types; }
|
||||||
set { Translation._gl_types = value; }
|
set { Translation._gl_types = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region CS types dictionary
|
||||||
|
|
||||||
private static Dictionary<string, string> _cs_types;
|
private static Dictionary<string, string> _cs_types;
|
||||||
|
|
||||||
public static Dictionary<string, string> CStypes
|
public static Dictionary<string, string> CSTypes
|
||||||
{
|
{
|
||||||
get { return Translation._cs_types; }
|
get { return Translation._cs_types; }
|
||||||
set { Translation._cs_types = value; }
|
set { Translation._cs_types = value; }
|
||||||
|
@ -51,6 +58,32 @@ namespace OpenTK.OpenGL.Bind
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region GLX types dictionary
|
||||||
|
|
||||||
|
private static Dictionary<string, string> _glx_types;
|
||||||
|
|
||||||
|
public static Dictionary<string, string> GLXTypes
|
||||||
|
{
|
||||||
|
get { return _glx_types; }
|
||||||
|
set { _glx_types = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region WGL types dictionary
|
||||||
|
|
||||||
|
private static Dictionary<string, string> _wgl_types;
|
||||||
|
|
||||||
|
public static Dictionary<string, string> WGLTypes
|
||||||
|
{
|
||||||
|
get { return _wgl_types; }
|
||||||
|
set { _wgl_types = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region Constructor
|
#region Constructor
|
||||||
|
|
||||||
static Translation()
|
static Translation()
|
||||||
|
@ -62,6 +95,7 @@ namespace OpenTK.OpenGL.Bind
|
||||||
parameter_names.Add("ref", "reference");
|
parameter_names.Add("ref", "reference");
|
||||||
parameter_names.Add("params", "parameters");
|
parameter_names.Add("params", "parameters");
|
||||||
parameter_names.Add("in", "@in");
|
parameter_names.Add("in", "@in");
|
||||||
|
parameter_names.Add("class", "@class");
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -116,7 +150,7 @@ namespace OpenTK.OpenGL.Bind
|
||||||
if (f.ReturnValue == "void")
|
if (f.ReturnValue == "void")
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (GLtypes.TryGetValue(f.ReturnValue, out s))
|
if (GLTypes.TryGetValue(f.ReturnValue, out s))
|
||||||
f.ReturnValue = s;
|
f.ReturnValue = s;
|
||||||
|
|
||||||
if (f.ReturnValue == "void[]")
|
if (f.ReturnValue == "void[]")
|
||||||
|
@ -167,7 +201,7 @@ namespace OpenTK.OpenGL.Bind
|
||||||
if (enums.ContainsKey(f.Category))
|
if (enums.ContainsKey(f.Category))
|
||||||
p.Type = "Enums." + f.Category;
|
p.Type = "Enums." + f.Category;
|
||||||
}
|
}
|
||||||
else if (GLtypes.TryGetValue(p.Type, out s))
|
else if (GLTypes.TryGetValue(p.Type, out s))
|
||||||
p.Type = s;
|
p.Type = s;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -13,7 +13,7 @@ namespace OpenTK.OpenGL.Bind
|
||||||
static class ContextWriter
|
static class ContextWriter
|
||||||
{
|
{
|
||||||
#region Write main context
|
#region Write main context
|
||||||
public static void WriteMainContext(string output_path, List<Function> functions)
|
public static void WriteMainContext(string output_path, string class_name, string gl_class_name, List<Function> functions)
|
||||||
{
|
{
|
||||||
string filename = Path.Combine(output_path, "GLContextLoad.cs");
|
string filename = Path.Combine(output_path, "GLContextLoad.cs");
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ namespace OpenTK.OpenGL.Bind
|
||||||
|
|
||||||
StreamWriter sw = new StreamWriter(filename, false);
|
StreamWriter sw = new StreamWriter(filename, false);
|
||||||
|
|
||||||
Console.WriteLine("Writing Context.Load() function to {1}", Settings.OutputClass, filename);
|
Console.WriteLine("Writing Context.Load() function to {1}", class_name, filename);
|
||||||
|
|
||||||
SpecWriter.WriteLicense(sw);
|
SpecWriter.WriteLicense(sw);
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ namespace OpenTK.OpenGL.Bind
|
||||||
|
|
||||||
foreach (Function f in functions)
|
foreach (Function f in functions)
|
||||||
{
|
{
|
||||||
sw.WriteLine(" {2}.{0} = ({2}.Delegates.{0})GetAddress(\"gl{1}\", typeof({2}.Delegates.{0}));", f.Name, f.Name.TrimEnd('_'), Settings.OutputClass);
|
sw.WriteLine(" {2}.{0} = ({2}.Delegates.{0})GetAddress(\"gl{1}\", typeof({2}.Delegates.{0}));", f.Name, f.Name.TrimEnd('_'), gl_class_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
sw.WriteLine(" }");
|
sw.WriteLine(" }");
|
||||||
|
@ -56,7 +56,7 @@ namespace OpenTK.OpenGL.Bind
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Write derived context
|
#region Write derived context
|
||||||
public static void WriteDerivedContext(string output_path, string class_name, List<Function> functions, params string[] import_list)
|
public static void WriteDerivedContext(string output_path, string class_name, string gl_class_name, List<Function> functions, params string[] import_list)
|
||||||
{
|
{
|
||||||
string filename = Path.Combine(output_path, class_name + "Load.cs");
|
string filename = Path.Combine(output_path, class_name + "Load.cs");
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ namespace OpenTK.OpenGL.Bind
|
||||||
foreach (Function f in functions)
|
foreach (Function f in functions)
|
||||||
{
|
{
|
||||||
if (IsImportFunction(f, import_list))
|
if (IsImportFunction(f, import_list))
|
||||||
sw.WriteLine(" {0}.{1} = new {0}.Delegates.{1}({0}.Imports.{1});", Settings.OutputClass, f.Name);
|
sw.WriteLine(" {0}.{1} = new {0}.Delegates.{1}({0}.Imports.{1});", gl_class_name, f.Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
sw.WriteLine(" }");
|
sw.WriteLine(" }");
|
||||||
|
|
|
@ -15,16 +15,16 @@ namespace OpenTK.OpenGL.Bind
|
||||||
static partial class SpecWriter
|
static partial class SpecWriter
|
||||||
{
|
{
|
||||||
#region WriteSpecs
|
#region WriteSpecs
|
||||||
public static void WriteSpecs(string output_path, List<Function> functions, List<Function> wrappers, Hashtable enums)
|
public static void WriteSpecs(string output_path, string class_name, List<Function> functions, List<Function> wrappers, Hashtable enums)
|
||||||
{
|
{
|
||||||
string filename = Path.Combine(output_path, Settings.OutputClass + ".cs");
|
string filename = Path.Combine(output_path, class_name + ".cs");
|
||||||
|
|
||||||
if (!Directory.Exists(Settings.OutputPath))
|
if (!Directory.Exists(Settings.OutputPath))
|
||||||
Directory.CreateDirectory(Settings.OutputPath);
|
Directory.CreateDirectory(Settings.OutputPath);
|
||||||
|
|
||||||
StreamWriter sw = new StreamWriter(filename, false);
|
StreamWriter sw = new StreamWriter(filename, false);
|
||||||
|
|
||||||
Console.WriteLine("Writing {0} class to {1}", Settings.OutputClass, filename);
|
Console.WriteLine("Writing {0} class to {1}", class_name, filename);
|
||||||
|
|
||||||
WriteLicense(sw);
|
WriteLicense(sw);
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ namespace OpenTK.OpenGL.Bind
|
||||||
WriteTypes(sw);
|
WriteTypes(sw);
|
||||||
WriteEnums(sw, enums);
|
WriteEnums(sw, enums);
|
||||||
|
|
||||||
sw.WriteLine(" public static partial class {0}", Settings.OutputClass);
|
sw.WriteLine(" public static partial class {0}", class_name);
|
||||||
sw.WriteLine(" {");
|
sw.WriteLine(" {");
|
||||||
|
|
||||||
WriteFunctionSignatures(sw, functions);
|
WriteFunctionSignatures(sw, functions);
|
||||||
|
@ -71,9 +71,9 @@ namespace OpenTK.OpenGL.Bind
|
||||||
{
|
{
|
||||||
sw.WriteLine(" #region Types");
|
sw.WriteLine(" #region Types");
|
||||||
//foreach ( c in constants)
|
//foreach ( c in constants)
|
||||||
foreach (string key in Translation.CStypes.Keys)
|
foreach (string key in Translation.CSTypes.Keys)
|
||||||
{
|
{
|
||||||
sw.WriteLine(" using {0} = System.{1};", key, Translation.CStypes[key]);
|
sw.WriteLine(" using {0} = System.{1};", key, Translation.CSTypes[key]);
|
||||||
//sw.WriteLine(" public const {0};", c.ToString());
|
//sw.WriteLine(" public const {0};", c.ToString());
|
||||||
}
|
}
|
||||||
sw.WriteLine(" #endregion");
|
sw.WriteLine(" #endregion");
|
||||||
|
@ -185,6 +185,7 @@ namespace OpenTK.OpenGL.Bind
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Write functions
|
#region Write functions
|
||||||
|
|
||||||
private static void WriteFunctions(StreamWriter sw, List<Function> functions)
|
private static void WriteFunctions(StreamWriter sw, List<Function> functions)
|
||||||
{
|
{
|
||||||
sw.WriteLine(" #region Function initialisation");
|
sw.WriteLine(" #region Function initialisation");
|
||||||
|
@ -199,27 +200,34 @@ namespace OpenTK.OpenGL.Bind
|
||||||
sw.WriteLine(" #endregion");
|
sw.WriteLine(" #endregion");
|
||||||
sw.WriteLine();
|
sw.WriteLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Write wrappers
|
#region Write wrappers
|
||||||
|
|
||||||
public static void WriteWrappers(StreamWriter sw, List<Function> wrappers)
|
public static void WriteWrappers(StreamWriter sw, List<Function> wrappers)
|
||||||
{
|
{
|
||||||
sw.WriteLine(" #region Wrappers");
|
sw.WriteLine(" #region Wrappers");
|
||||||
sw.WriteLine();
|
sw.WriteLine();
|
||||||
|
|
||||||
foreach (Function w in wrappers)
|
if (wrappers != null)
|
||||||
{
|
{
|
||||||
sw.WriteLine(" #region {0}{1}", w.Name, w.Parameters.ToString());
|
foreach (Function w in wrappers)
|
||||||
sw.WriteLine();
|
{
|
||||||
|
sw.WriteLine(" #region {0}{1}", w.Name, w.Parameters.ToString());
|
||||||
|
sw.WriteLine();
|
||||||
|
|
||||||
sw.WriteLine(" public static");
|
sw.WriteLine(" public static");
|
||||||
sw.WriteLine(w.ToString(" "));
|
sw.WriteLine(w.ToString(" "));
|
||||||
|
|
||||||
sw.WriteLine(" #endregion");
|
sw.WriteLine(" #endregion");
|
||||||
sw.WriteLine();
|
sw.WriteLine();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sw.WriteLine(" #endregion");
|
sw.WriteLine(" #endregion");
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load diff
|
@ -23,7 +23,6 @@ namespace OpenTK.OpenGL.Platform
|
||||||
|
|
||||||
public WindowsContext(Control c, int red, int green, int blue, int alpha, int depth, int stencil)
|
public WindowsContext(Control c, int red, int green, int blue, int alpha, int depth, int stencil)
|
||||||
{
|
{
|
||||||
bool load_extensions = false;
|
|
||||||
int error_code = 0;
|
int error_code = 0;
|
||||||
_window_handle = c.Handle;
|
_window_handle = c.Handle;
|
||||||
|
|
||||||
|
@ -40,7 +39,6 @@ namespace OpenTK.OpenGL.Platform
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//System.Diagnostics.Debug.WriteLine("Loaded dll: {0}", _dll_name);
|
//System.Diagnostics.Debug.WriteLine("Loaded dll: {0}", _dll_name);
|
||||||
load_extensions = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,11 +108,11 @@ namespace OpenTK.OpenGL.Platform
|
||||||
|
|
||||||
public override Delegate GetAddress(string function_string, Type function_type)
|
public override Delegate GetAddress(string function_string, Type function_type)
|
||||||
{
|
{
|
||||||
int address = Wgl.GetProcAddress(function_string);
|
IntPtr address = Wgl.GetProcAddress(function_string);
|
||||||
if (address == 0)
|
if (address == IntPtr.Zero)
|
||||||
return null;
|
return null;
|
||||||
else
|
else
|
||||||
return Marshal.GetDelegateForFunctionPointer(new IntPtr(address), function_type);
|
return Marshal.GetDelegateForFunctionPointer(address, function_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void MakeCurrent()
|
public override void MakeCurrent()
|
||||||
|
|
|
@ -21,7 +21,6 @@ namespace OpenTK.OpenGL.Platform
|
||||||
|
|
||||||
public WindowsVistaContext(Control c, int red, int green, int blue, int alpha, int depth, int stencil)
|
public WindowsVistaContext(Control c, int red, int green, int blue, int alpha, int depth, int stencil)
|
||||||
{
|
{
|
||||||
bool load_extensions = false;
|
|
||||||
int error_code = 0;
|
int error_code = 0;
|
||||||
_window_handle = c.Handle;
|
_window_handle = c.Handle;
|
||||||
|
|
||||||
|
@ -38,7 +37,6 @@ namespace OpenTK.OpenGL.Platform
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Console.WriteLine("Loaded dll: {0}", _dll_name);
|
Console.WriteLine("Loaded dll: {0}", _dll_name);
|
||||||
load_extensions = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,11 +106,11 @@ namespace OpenTK.OpenGL.Platform
|
||||||
|
|
||||||
public override Delegate GetAddress(string function_string, Type function_type)
|
public override Delegate GetAddress(string function_string, Type function_type)
|
||||||
{
|
{
|
||||||
int address = Wgl.GetProcAddress(function_string);
|
IntPtr address = Wgl.GetProcAddress(function_string);
|
||||||
if (address == 0)
|
if (address == IntPtr.Zero)
|
||||||
return null;
|
return null;
|
||||||
else
|
else
|
||||||
return Marshal.GetDelegateForFunctionPointer(new IntPtr(address), function_type);
|
return Marshal.GetDelegateForFunctionPointer(address, function_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void MakeCurrent()
|
public override void MakeCurrent()
|
||||||
|
|
|
@ -1,38 +1,48 @@
|
||||||
|
#region License
|
||||||
/* Copyright (c) 2006 Stephen Apostolopoulos
|
/* Copyright (c) 2006 Stephen Apostolopoulos
|
||||||
* See license.txt for license info
|
* See license.txt for license info
|
||||||
*/
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
namespace OpenTK.OpenGL.Platform
|
namespace OpenTK.OpenGL.Platform
|
||||||
{
|
{
|
||||||
public partial class X11Context : OpenTK.OpenGL.GLContext
|
public partial class X11Context : OpenTK.OpenGL.GLContext
|
||||||
{
|
{
|
||||||
|
int drawable, context;
|
||||||
|
const string _dll_name = "opengl.so";
|
||||||
|
|
||||||
public X11Context(Control c, int red, int green, int blue, int alpha, int depth, int stencil)
|
public X11Context(Control c, int red, int green, int blue, int alpha, int depth, int stencil)
|
||||||
{
|
{
|
||||||
|
drawable = c.Handle.ToInt32();
|
||||||
|
|
||||||
throw new Exception("The method or operation is not implemented.");
|
throw new Exception("The method or operation is not implemented.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SwapBuffers()
|
public override void SwapBuffers()
|
||||||
{
|
{
|
||||||
throw new Exception("The method or operation is not implemented.");
|
Glx.SwapBuffers(drawable);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override Delegate GetAddress(string function_string, Type function_type)
|
public override Delegate GetAddress(string function_string, Type function_type)
|
||||||
{
|
{
|
||||||
throw new Exception("The method or operation is not implemented.");
|
IntPtr address = Glx.GetProcAddress(function_string);
|
||||||
|
if (address == IntPtr.Zero)
|
||||||
|
return null;
|
||||||
|
else
|
||||||
|
return Marshal.GetDelegateForFunctionPointer(address, function_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void MakeCurrent()
|
public override void MakeCurrent()
|
||||||
{
|
{
|
||||||
throw new Exception("The method or operation is not implemented.");
|
Glx.MakeCurrent(drawable, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
const string _dll_name = "opengl.so";
|
|
||||||
|
|
||||||
public override void Dispose()
|
public override void Dispose()
|
||||||
{
|
{
|
||||||
throw new Exception("The method or operation is not implemented.");
|
throw new Exception("The method or operation is not implemented.");
|
||||||
|
|
304
Source/OpenGL/OpenGL/Glx.cs
Normal file
304
Source/OpenGL/OpenGL/Glx.cs
Normal file
|
@ -0,0 +1,304 @@
|
||||||
|
#region License
|
||||||
|
/* Copyright (c) 2006 Stephen Apostolopoulos
|
||||||
|
* See license.txt for license info
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace OpenTK.OpenGL
|
||||||
|
{
|
||||||
|
#region Types
|
||||||
|
using GLsizeiptrARB = System.IntPtr;
|
||||||
|
using GLintptrARB = System.IntPtr;
|
||||||
|
using GLhandleARB = System.Int32;
|
||||||
|
using GLhalfARB = System.Int16;
|
||||||
|
using GLhalfNV = System.Int16;
|
||||||
|
using GLcharARB = System.Char;
|
||||||
|
using GLsizei = System.Int32;
|
||||||
|
using GLsizeiptr = System.IntPtr;
|
||||||
|
using GLintptr = System.IntPtr;
|
||||||
|
using GLenum = System.Int32;
|
||||||
|
using GLboolean = System.Boolean;
|
||||||
|
using GLbitfield = System.Int32;
|
||||||
|
using GLchar = System.Char;
|
||||||
|
using GLbyte = System.Byte;
|
||||||
|
using GLubyte = System.Byte;
|
||||||
|
using GLshort = System.Int16;
|
||||||
|
using GLushort = System.Int16;
|
||||||
|
using GLint = System.Int32;
|
||||||
|
using GLuint = System.Int32;
|
||||||
|
using GLfloat = System.Single;
|
||||||
|
using GLclampf = System.Single;
|
||||||
|
using GLdouble = System.Double;
|
||||||
|
using GLclampd = System.Double;
|
||||||
|
using GLstring = System.String;
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Provides access to GLX functions.
|
||||||
|
/// </summary>
|
||||||
|
public class Glx
|
||||||
|
{
|
||||||
|
const string _dll_name = "glx.so";
|
||||||
|
|
||||||
|
#region Enums
|
||||||
|
|
||||||
|
public struct Enums
|
||||||
|
{
|
||||||
|
public enum GLXAttribute : uint
|
||||||
|
{
|
||||||
|
TRANSPARENT_BLUE_VALUE_EXT = 0x27,
|
||||||
|
GRAY_SCALE = 0x8006,
|
||||||
|
RGBA_TYPE = 0x8014,
|
||||||
|
TRANSPARENT_RGB_EXT = 0x8008,
|
||||||
|
ACCUM_BLUE_SIZE = 16,
|
||||||
|
SHARE_CONTEXT_EXT = 0x800A,
|
||||||
|
STEREO = 6,
|
||||||
|
ALPHA_SIZE = 11,
|
||||||
|
FLOAT_COMPONENTS_NV = 0x20B0,
|
||||||
|
NONE = 0x8000,
|
||||||
|
DEPTH_SIZE = 12,
|
||||||
|
TRANSPARENT_INDEX_VALUE_EXT = 0x24,
|
||||||
|
MAX_PBUFFER_WIDTH_SGIX = 0x8016,
|
||||||
|
GREEN_SIZE = 9,
|
||||||
|
X_RENDERABLE_SGIX = 0x8012,
|
||||||
|
LARGEST_PBUFFER = 0x801C,
|
||||||
|
DONT_CARE = 0xFFFFFFFF,
|
||||||
|
TRANSPARENT_ALPHA_VALUE_EXT = 0x28,
|
||||||
|
PSEUDO_COLOR_EXT = 0x8004,
|
||||||
|
USE_GL = 1,
|
||||||
|
SAMPLE_BUFFERS_SGIS = 100000,
|
||||||
|
TRANSPARENT_GREEN_VALUE_EXT = 0x26,
|
||||||
|
HYPERPIPE_ID_SGIX = 0x8030,
|
||||||
|
COLOR_INDEX_TYPE_SGIX = 0x8015,
|
||||||
|
SLOW_CONFIG = 0x8001,
|
||||||
|
PRESERVED_CONTENTS = 0x801B,
|
||||||
|
ACCUM_RED_SIZE = 14,
|
||||||
|
EVENT_MASK = 0x801F,
|
||||||
|
VISUAL_ID_EXT = 0x800B,
|
||||||
|
EVENT_MASK_SGIX = 0x801F,
|
||||||
|
SLOW_VISUAL_EXT = 0x8001,
|
||||||
|
TRANSPARENT_GREEN_VALUE = 0x26,
|
||||||
|
MAX_PBUFFER_WIDTH = 0x8016,
|
||||||
|
DIRECT_COLOR_EXT = 0x8003,
|
||||||
|
VISUAL_ID = 0x800B,
|
||||||
|
ACCUM_GREEN_SIZE = 15,
|
||||||
|
DRAWABLE_TYPE_SGIX = 0x8010,
|
||||||
|
SCREEN_EXT = 0x800C,
|
||||||
|
SAMPLES = 100001,
|
||||||
|
HEIGHT = 0x801E,
|
||||||
|
TRANSPARENT_INDEX_VALUE = 0x24,
|
||||||
|
SAMPLE_BUFFERS_ARB = 100000,
|
||||||
|
PBUFFER = 0x8023,
|
||||||
|
RGBA_TYPE_SGIX = 0x8014,
|
||||||
|
MAX_PBUFFER_HEIGHT = 0x8017,
|
||||||
|
FBCONFIG_ID_SGIX = 0x8013,
|
||||||
|
DRAWABLE_TYPE = 0x8010,
|
||||||
|
SCREEN = 0x800C,
|
||||||
|
RED_SIZE = 8,
|
||||||
|
VISUAL_SELECT_GROUP_SGIX = 0x8028,
|
||||||
|
VISUAL_CAVEAT_EXT = 0x20,
|
||||||
|
PSEUDO_COLOR = 0x8004,
|
||||||
|
PBUFFER_HEIGHT = 0x8040,
|
||||||
|
STATIC_GRAY = 0x8007,
|
||||||
|
PRESERVED_CONTENTS_SGIX = 0x801B,
|
||||||
|
RGBA_FLOAT_TYPE_ARB = 0x20B9,
|
||||||
|
TRANSPARENT_RED_VALUE = 0x25,
|
||||||
|
TRANSPARENT_ALPHA_VALUE = 0x28,
|
||||||
|
WINDOW = 0x8022,
|
||||||
|
X_RENDERABLE = 0x8012,
|
||||||
|
STENCIL_SIZE = 13,
|
||||||
|
TRANSPARENT_RGB = 0x8008,
|
||||||
|
LARGEST_PBUFFER_SGIX = 0x801C,
|
||||||
|
STATIC_GRAY_EXT = 0x8007,
|
||||||
|
TRANSPARENT_BLUE_VALUE = 0x27,
|
||||||
|
DIGITAL_MEDIA_PBUFFER_SGIX = 0x8024,
|
||||||
|
BLENDED_RGBA_SGIS = 0x8025,
|
||||||
|
NON_CONFORMANT_VISUAL_EXT = 0x800D,
|
||||||
|
COLOR_INDEX_TYPE = 0x8015,
|
||||||
|
TRANSPARENT_RED_VALUE_EXT = 0x25,
|
||||||
|
GRAY_SCALE_EXT = 0x8006,
|
||||||
|
WINDOW_SGIX = 0x8022,
|
||||||
|
X_VISUAL_TYPE = 0x22,
|
||||||
|
MAX_PBUFFER_HEIGHT_SGIX = 0x8017,
|
||||||
|
DOUBLEBUFFER = 5,
|
||||||
|
OPTIMAL_PBUFFER_WIDTH_SGIX = 0x8019,
|
||||||
|
X_VISUAL_TYPE_EXT = 0x22,
|
||||||
|
WIDTH_SGIX = 0x801D,
|
||||||
|
STATIC_COLOR_EXT = 0x8005,
|
||||||
|
BUFFER_SIZE = 2,
|
||||||
|
DIRECT_COLOR = 0x8003,
|
||||||
|
MAX_PBUFFER_PIXELS = 0x8018,
|
||||||
|
NONE_EXT = 0x8000,
|
||||||
|
HEIGHT_SGIX = 0x801E,
|
||||||
|
RENDER_TYPE = 0x8011,
|
||||||
|
FBCONFIG_ID = 0x8013,
|
||||||
|
TRANSPARENT_INDEX_EXT = 0x8009,
|
||||||
|
TRANSPARENT_INDEX = 0x8009,
|
||||||
|
TRANSPARENT_TYPE_EXT = 0x23,
|
||||||
|
ACCUM_ALPHA_SIZE = 17,
|
||||||
|
PBUFFER_SGIX = 0x8023,
|
||||||
|
MAX_PBUFFER_PIXELS_SGIX = 0x8018,
|
||||||
|
OPTIMAL_PBUFFER_HEIGHT_SGIX = 0x801A,
|
||||||
|
DAMAGED = 0x8020,
|
||||||
|
SAVED_SGIX = 0x8021,
|
||||||
|
TRANSPARENT_TYPE = 0x23,
|
||||||
|
MULTISAMPLE_SUB_RECT_WIDTH_SGIS = 0x8026,
|
||||||
|
NON_CONFORMANT_CONFIG = 0x800D,
|
||||||
|
BLUE_SIZE = 10,
|
||||||
|
TRUE_COLOR_EXT = 0x8002,
|
||||||
|
SAMPLES_SGIS = 100001,
|
||||||
|
SAMPLES_ARB = 100001,
|
||||||
|
TRUE_COLOR = 0x8002,
|
||||||
|
RGBA = 4,
|
||||||
|
AUX_BUFFERS = 7,
|
||||||
|
SAMPLE_BUFFERS = 100000,
|
||||||
|
SAVED = 0x8021,
|
||||||
|
MULTISAMPLE_SUB_RECT_HEIGHT_SGIS = 0x8027,
|
||||||
|
DAMAGED_SGIX = 0x8020,
|
||||||
|
STATIC_COLOR = 0x8005,
|
||||||
|
PBUFFER_WIDTH = 0x8041,
|
||||||
|
WIDTH = 0x801D,
|
||||||
|
LEVEL = 3,
|
||||||
|
CONFIG_CAVEAT = 0x20,
|
||||||
|
RENDER_TYPE_SGIX = 0x8011,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum GLXHyperpipeAttrib : uint
|
||||||
|
{
|
||||||
|
PIPE_RECT_LIMITS_SGIX = 0x00000002,
|
||||||
|
PIPE_RECT_SGIX = 0x00000001,
|
||||||
|
HYPERPIPE_STEREO_SGIX = 0x00000003,
|
||||||
|
HYPERPIPE_PIXEL_AVERAGE_SGIX = 0x00000004,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum GLXStringName : uint
|
||||||
|
{
|
||||||
|
EXTENSIONS = 0x3,
|
||||||
|
VERSION = 0x2,
|
||||||
|
VENDOR = 0x1,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum GLXEventMask : uint
|
||||||
|
{
|
||||||
|
PBUFFER_CLOBBER_MASK = 0x08000000,
|
||||||
|
BUFFER_CLOBBER_MASK_SGIX = 0x08000000,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum GLXRenderTypeMask : uint
|
||||||
|
{
|
||||||
|
COLOR_INDEX_BIT_SGIX = 0x00000002,
|
||||||
|
RGBA_BIT = 0x00000001,
|
||||||
|
RGBA_FLOAT_BIT_ARB = 0x00000004,
|
||||||
|
RGBA_BIT_SGIX = 0x00000001,
|
||||||
|
COLOR_INDEX_BIT = 0x00000002,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum GLXHyperpipeTypeMask : uint
|
||||||
|
{
|
||||||
|
HYPERPIPE_RENDER_PIPE_SGIX = 0x00000002,
|
||||||
|
HYPERPIPE_DISPLAY_PIPE_SGIX = 0x00000001,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum GLXPbufferClobberMask : uint
|
||||||
|
{
|
||||||
|
ACCUM_BUFFER_BIT_SGIX = 0x00000080,
|
||||||
|
FRONT_LEFT_BUFFER_BIT = 0x00000001,
|
||||||
|
BACK_RIGHT_BUFFER_BIT = 0x00000008,
|
||||||
|
FRONT_RIGHT_BUFFER_BIT_SGIX = 0x00000002,
|
||||||
|
STENCIL_BUFFER_BIT_SGIX = 0x00000040,
|
||||||
|
SAMPLE_BUFFERS_BIT_SGIX = 0x00000100,
|
||||||
|
STENCIL_BUFFER_BIT = 0x00000040,
|
||||||
|
BACK_RIGHT_BUFFER_BIT_SGIX = 0x00000008,
|
||||||
|
BACK_LEFT_BUFFER_BIT_SGIX = 0x00000004,
|
||||||
|
AUX_BUFFERS_BIT = 0x00000010,
|
||||||
|
DEPTH_BUFFER_BIT_SGIX = 0x00000020,
|
||||||
|
ACCUM_BUFFER_BIT = 0x00000080,
|
||||||
|
AUX_BUFFERS_BIT_SGIX = 0x00000010,
|
||||||
|
DEPTH_BUFFER_BIT = 0x00000020,
|
||||||
|
FRONT_LEFT_BUFFER_BIT_SGIX = 0x00000001,
|
||||||
|
BACK_LEFT_BUFFER_BIT = 0x00000004,
|
||||||
|
FRONT_RIGHT_BUFFER_BIT = 0x00000002,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum GLXHyperpipeMisc : uint
|
||||||
|
{
|
||||||
|
HYPERPIPE_PIPE_NAME_LENGTH_SGIX = 80,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum GLXErrorCode : uint
|
||||||
|
{
|
||||||
|
BAD_CONTEXT = 5,
|
||||||
|
NO_EXTENSION = 3,
|
||||||
|
BAD_HYPERPIPE_SGIX = 92,
|
||||||
|
BAD_ENUM = 7,
|
||||||
|
BAD_SCREEN = 1,
|
||||||
|
BAD_VALUE = 6,
|
||||||
|
BAD_ATTRIBUTE = 2,
|
||||||
|
BAD_VISUAL = 4,
|
||||||
|
BAD_HYPERPIPE_CONFIG_SGIX = 91,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum GLXSyncType : uint
|
||||||
|
{
|
||||||
|
SYNC_SWAP_SGIX = 0x00000001,
|
||||||
|
SYNC_FRAME_SGIX = 0x00000000,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum GLXDrawableTypeMask : uint
|
||||||
|
{
|
||||||
|
WINDOW_BIT = 0x00000001,
|
||||||
|
PIXMAP_BIT = 0x00000002,
|
||||||
|
PBUFFER_BIT_SGIX = 0x00000004,
|
||||||
|
PBUFFER_BIT = 0x00000004,
|
||||||
|
WINDOW_BIT_SGIX = 0x00000001,
|
||||||
|
PIXMAP_BIT_SGIX = 0x00000002,
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region GLX functions
|
||||||
|
|
||||||
|
[DllImport("_dll_name", EntryPoint = "glxCreateContext")]
|
||||||
|
public static extern void CreateContext(Int32 gc_id, Int32 screen, Int32 visual, Int32 share_list);
|
||||||
|
|
||||||
|
[DllImport("_dll_name", EntryPoint = "glxDestroyContext")]
|
||||||
|
public static extern void DestroyContext(Int32 context);
|
||||||
|
|
||||||
|
[DllImport("_dll_name", EntryPoint = "glxMakeCurrent")]
|
||||||
|
public static extern void MakeCurrent(Int32 drawable, Int32 context);
|
||||||
|
|
||||||
|
[DllImport("_dll_name", EntryPoint = "glxSwapBuffers")]
|
||||||
|
public static extern void SwapBuffers(Int32 drawable);
|
||||||
|
|
||||||
|
[DllImport("_dll_name", EntryPoint = "glxGetProcAddress")]
|
||||||
|
public static extern IntPtr GetProcAddress([MarshalAs(UnmanagedType.LPTStr)] string procName);
|
||||||
|
|
||||||
|
//[DllImport("opengl32.dll", EntryPoint = "glCreateWindow")]
|
||||||
|
//public static extern void CreateWindow(Int32 config, Int32 window, Int32 glxwindow);
|
||||||
|
//[DllImport("opengl32.dll", EntryPoint = "glDestroyWindow")]
|
||||||
|
//public static extern void DestroyWindow(Int32 glxwindow);
|
||||||
|
//[DllImport("opengl32.dll", EntryPoint = "glCreatePixmap")]
|
||||||
|
//public static extern void CreatePixmap(Int32 config, Int32 pixmap, Int32 glxpixmap);
|
||||||
|
//[DllImport("opengl32.dll", EntryPoint = "glDestroyPixmap")]
|
||||||
|
//public static extern void DestroyPixmap(Int32 glxpixmap);
|
||||||
|
//[DllImport("opengl32.dll", EntryPoint = "glCreateNewContext")]
|
||||||
|
//public static extern void CreateNewContext(Int32 config, Int32 render_type, Int32 share_list, Int32 direct);
|
||||||
|
//[DllImport("opengl32.dll", EntryPoint = "glQueryContext")]
|
||||||
|
//public static extern void QueryContext();
|
||||||
|
//[DllImport("opengl32.dll", EntryPoint = "glMakeContextCurrent")]
|
||||||
|
//public static extern void MakeContextCurrent(Int32 drawable, Int32 readdrawable, Int32 context);
|
||||||
|
//[DllImport("opengl32.dll", EntryPoint = "glCreatePbuffer")]
|
||||||
|
//public static extern void CreatePbuffer(Int32 config, Int32 pbuffer);
|
||||||
|
//[DllImport("opengl32.dll", EntryPoint = "glDestroyPbuffer")]
|
||||||
|
//public static extern void DestroyPbuffer(Int32 pbuffer);
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -56,6 +56,7 @@
|
||||||
<Compile Include="Contexts\WindowsContext.cs" />
|
<Compile Include="Contexts\WindowsContext.cs" />
|
||||||
<Compile Include="Contexts\WindowsVistaContext.cs" />
|
<Compile Include="Contexts\WindowsVistaContext.cs" />
|
||||||
<Compile Include="Contexts\X11Context.cs" />
|
<Compile Include="Contexts\X11Context.cs" />
|
||||||
|
<Compile Include="Glx.cs" />
|
||||||
<Compile Include="Wgl.cs" />
|
<Compile Include="Wgl.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -64,6 +65,10 @@
|
||||||
<Project>{FDFA00B6-FA81-4658-86E1-F312EFB42E1C}</Project>
|
<Project>{FDFA00B6-FA81-4658-86E1-F312EFB42E1C}</Project>
|
||||||
<Name>OpenTK.Platform.Windows</Name>
|
<Name>OpenTK.Platform.Windows</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\Platform\X\OpenTK.Platform.X.csproj">
|
||||||
|
<Project>{E3F35BD6-67CE-4AD5-AB98-043CF072A75A}</Project>
|
||||||
|
<Name>OpenTK.Platform.X</Name>
|
||||||
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
</Project>
|
</Project>
|
|
@ -1,6 +1,8 @@
|
||||||
|
#region License
|
||||||
/* Copyright (c) 2006 Stephen Apostolopoulos
|
/* Copyright (c) 2006 Stephen Apostolopoulos
|
||||||
* See license.txt for license info
|
* See license.txt for license info
|
||||||
*/
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
@ -239,7 +241,7 @@ namespace OpenTK.OpenGL
|
||||||
public static extern int ShareLists(int r1, int r2);
|
public static extern int ShareLists(int r1, int r2);
|
||||||
|
|
||||||
[DllImport(_dll_name, EntryPoint = "wglGetProcAddress")]
|
[DllImport(_dll_name, EntryPoint = "wglGetProcAddress")]
|
||||||
public static extern int GetProcAddress(string funcname);
|
public static extern IntPtr GetProcAddress(string funcname);
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
|
||||||
//
|
//
|
||||||
// You can specify all the values or you can default the Revision and Build Numbers
|
// You can specify all the values or you can default the Revision and Build Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
[assembly: AssemblyVersion("0.1.0.1")]
|
[assembly: AssemblyVersion("0.1.2.0")]
|
||||||
[assembly: AssemblyFileVersion("0.1.0.1")]
|
[assembly: AssemblyFileVersion("0.1.2.0")]
|
||||||
|
|
47
Source/Platform/X/OpenTK.Platform.X.csproj
Normal file
47
Source/Platform/X/OpenTK.Platform.X.csproj
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProductVersion>8.0.50727</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{E3F35BD6-67CE-4AD5-AB98-043CF072A75A}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>X</RootNamespace>
|
||||||
|
<AssemblyName>X</AssemblyName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="XApi.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
35
Source/Platform/X/Properties/AssemblyInfo.cs
Normal file
35
Source/Platform/X/Properties/AssemblyInfo.cs
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("X")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("X")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2006")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("1236132a-311a-430f-922e-18e4cc0aabe3")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Revision and Build Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
[assembly: AssemblyVersion("0.1.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("0.1.0.0")]
|
16
Source/Platform/X/XApi.cs
Normal file
16
Source/Platform/X/XApi.cs
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#region License
|
||||||
|
/* Copyright (c) 2006 Stephen Apostolopoulos
|
||||||
|
* See license.txt for license info
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace OpenTK.Platform.X
|
||||||
|
{
|
||||||
|
public class XApi
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,10 @@
|
||||||
OpenTK 0.3.4 -> 0.3.5
|
OpenTK 0.3.4 -> 0.3.5
|
||||||
+ Major update to OpenTK.OpenGL.Bind (cleaner code, new functions, comments and many new wrappers).
|
+ Major update to OpenTK.OpenGL.Bind (cleaner code, new functions, comments and many new wrappers).
|
||||||
|
+ Laid the foundation for X (Linux, Unix, MacOS) support.
|
||||||
|
+ Added bindings to some glx functions.
|
||||||
|
+ Added the OpenTK.Platform.X class.
|
||||||
|
+ Minor updates to the wgl bindings (int -> IntPtr).
|
||||||
|
+ Tested the binding generator with the glx specs (the reader and the enum writer work ok, the trnaslator and the other writers need updating).
|
||||||
|
|
||||||
OpenTK 0.3.3 -> 0.3.4
|
OpenTK 0.3.3 -> 0.3.4
|
||||||
+ Corrected the crash error in Release mode (it was caused by trying to Marshal the System.Windows.Forms.Message struct to PeekMessage - adding my own Message struct corrected the issue).
|
+ Corrected the crash error in Release mode (it was caused by trying to Marshal the System.Windows.Forms.Message struct to PeekMessage - adding my own Message struct corrected the issue).
|
||||||
|
|
18
todo.txt
18
todo.txt
|
@ -1,20 +1,22 @@
|
||||||
Todo:
|
Todo:
|
||||||
+ + + Add basic GLX bindings.
|
+ + + Add basic GLX bindings.
|
||||||
|
+ + + Add basic X bindings.
|
||||||
|
+ + + Add context creation support for X.
|
||||||
|
+ + + Test X support.
|
||||||
|
+ + + Add the CLS compliant attribute to the GL class.
|
||||||
+ + Add cross-platform way for overriding the Application.Idle handler.
|
+ + Add cross-platform way for overriding the Application.Idle handler.
|
||||||
+ Add more examples.
|
|
||||||
+ + Change the hierarchy of the WindowsContext and WindowsVistaContext classes. The should have a common ancestor who manages the windows creation (it should be the same for both).
|
+ + Change the hierarchy of the WindowsContext and WindowsVistaContext classes. The should have a common ancestor who manages the windows creation (it should be the same for both).
|
||||||
+ + Add more constructors to the WindowsContext classes. This probably needs updating of the WinAPI assembly.
|
+ + Add more constructors to the Context classes.
|
||||||
+ + Add X11Context constructors.
|
|
||||||
+ + Add more GLForm constructors.
|
+ + Add more GLForm constructors.
|
||||||
|
+ + Add comments and documentation (faqs, pitfalls, best practices).
|
||||||
|
+ + Add a cross-platform build system (probably NAnt?)
|
||||||
|
+ Add more examples.
|
||||||
+ Find out what is needed for the MacOS platform (how to do function loading and window management without X11).
|
+ Find out what is needed for the MacOS platform (how to do function loading and window management without X11).
|
||||||
+ Add full bindings to Glu, Wgl, Glx and Agl.
|
+ Add full bindings for glu, wgl, glx and agl (probably generated automatically).
|
||||||
+ Add the Math module.
|
+ Add the Math module.
|
||||||
+ Research and add the Input module.
|
+ Research and add the Input module.
|
||||||
+ Review and add the Timer module.
|
+ Review and add the Timer module.
|
||||||
+ Review and add the OpenAL module.
|
+ Review and add the OpenAL module.
|
||||||
+ Add projects for MonoDevelop.
|
+ Add projects for MonoDevelop.
|
||||||
+ See if using Nant for building is a good idea.
|
+ Clean up the code.
|
||||||
+ + Clean up the code.
|
|
||||||
+ + Add comments and documentation (faqs, pitfalls, best practices).
|
|
||||||
+ + + Add the CLS compliant attribute to the GL class.
|
|
||||||
+ Add more platform bindings.
|
+ Add more platform bindings.
|
Loading…
Reference in a new issue