mirror of
https://github.com/Ryujinx/Opentk.git
synced 2025-07-08 07:10:34 +00:00
Cleaned up Generator class tree
This significantly reduces the amount of duplicated code between Generator implementations.
This commit is contained in:
parent
51cb1f02db
commit
a3bd227e20
|
@ -12,29 +12,12 @@ namespace Bind.ES
|
||||||
class ESGenerator : Generator
|
class ESGenerator : Generator
|
||||||
{
|
{
|
||||||
public ESGenerator(string nsName, string dirName)
|
public ESGenerator(string nsName, string dirName)
|
||||||
|
: base(nsName, dirName)
|
||||||
{
|
{
|
||||||
if (String.IsNullOrEmpty(nsName))
|
|
||||||
throw new ArgumentNullException("nsName");
|
|
||||||
if (dirName == null)
|
|
||||||
dirName = nsName;
|
|
||||||
|
|
||||||
glTypemap = "GL2/gl.tm";
|
|
||||||
csTypemap = Settings.LanguageTypeMapFile;
|
|
||||||
|
|
||||||
enumSpec = dirName + "/signatures.xml";
|
|
||||||
enumSpecExt = String.Empty;
|
|
||||||
glSpec = dirName + "/signatures.xml";
|
|
||||||
glSpecExt = String.Empty;
|
|
||||||
Settings.OverridesFile = dirName + "/overrides.xml";
|
|
||||||
|
|
||||||
Settings.ImportsFile = "Core.cs";
|
Settings.ImportsFile = "Core.cs";
|
||||||
Settings.DelegatesFile = "Delegates.cs";
|
Settings.DelegatesFile = "Delegates.cs";
|
||||||
Settings.EnumsFile = "Enums.cs";
|
Settings.EnumsFile = "Enums.cs";
|
||||||
Settings.WrappersFile = "ES.cs";
|
Settings.WrappersFile = "ES.cs";
|
||||||
Settings.ImportsClass = "Core";
|
|
||||||
Settings.DelegatesClass = "Delegates";
|
|
||||||
|
|
||||||
Settings.OutputClass = "GL";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,33 +27,20 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace Bind.GL2
|
namespace Bind.GL2
|
||||||
{
|
{
|
||||||
class GL4Generator : ES.ESGenerator
|
class GL4Generator : Generator
|
||||||
{
|
{
|
||||||
public GL4Generator(string name, string dirname)
|
public GL4Generator(string name, string dirname)
|
||||||
: base(name, dirname)
|
: base(name, dirname)
|
||||||
{
|
{
|
||||||
glTypemap = "GL2/gl.tm";
|
Settings.OverridesFile = Path.Combine(dirname, "gloverrides.xml");
|
||||||
csTypemap = Settings.LanguageTypeMapFile;
|
|
||||||
|
|
||||||
enumSpec = "GL2/signatures.xml";
|
Profile = "glcore";
|
||||||
enumSpecExt = String.Empty;
|
|
||||||
glSpec = "GL2/signatures.xml";
|
|
||||||
glSpecExt = String.Empty;
|
|
||||||
Settings.OverridesFile = "GL2/gloverrides.xml";
|
|
||||||
|
|
||||||
Settings.ImportsFile = "GLCore.cs";
|
|
||||||
Settings.DelegatesFile = "GLDelegates.cs";
|
|
||||||
Settings.EnumsFile = "GLEnums.cs";
|
|
||||||
Settings.WrappersFile = "GL.cs";
|
|
||||||
Settings.ImportsClass = "Core";
|
|
||||||
Settings.DelegatesClass = "Delegates";
|
|
||||||
|
|
||||||
Settings.OutputClass = "GL";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,13 +37,33 @@ namespace Bind.GL2
|
||||||
//protected static readonly Dictionary<string, string> doc_replacements;
|
//protected static readonly Dictionary<string, string> doc_replacements;
|
||||||
|
|
||||||
protected ISpecReader SpecReader = new XmlSpecReader();
|
protected ISpecReader SpecReader = new XmlSpecReader();
|
||||||
|
protected string Profile = "gl";
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Constructors
|
#region Constructors
|
||||||
|
|
||||||
public Generator()
|
public Generator(string nsName, string dirName)
|
||||||
{
|
{
|
||||||
|
if (String.IsNullOrEmpty(nsName))
|
||||||
|
throw new ArgumentNullException("nsName");
|
||||||
|
if (dirName == null)
|
||||||
|
dirName = "GL2";
|
||||||
|
|
||||||
|
glTypemap = "GL2/gl.tm";
|
||||||
|
csTypemap = Settings.LanguageTypeMapFile;
|
||||||
|
|
||||||
|
enumSpec = Path.Combine(dirName, "signatures.xml");
|
||||||
|
enumSpecExt = String.Empty;
|
||||||
|
glSpec = Path.Combine(dirName, "signatures.xml");
|
||||||
|
glSpecExt = String.Empty;
|
||||||
|
Settings.OverridesFile = Path.Combine(dirName, "overrides.xml");
|
||||||
|
|
||||||
|
Settings.ImportsClass = "Core";
|
||||||
|
Settings.DelegatesClass = "Delegates";
|
||||||
|
|
||||||
|
Settings.OutputClass = "GL";
|
||||||
|
|
||||||
if (Settings.Compatibility == Settings.Legacy.Tao)
|
if (Settings.Compatibility == Settings.Legacy.Tao)
|
||||||
{
|
{
|
||||||
Settings.OutputNamespace = "Tao.OpenGl";
|
Settings.OutputNamespace = "Tao.OpenGl";
|
||||||
|
@ -77,11 +97,9 @@ namespace Bind.GL2
|
||||||
string overrides = Path.Combine(Settings.InputPath, Settings.OverridesFile);
|
string overrides = Path.Combine(Settings.InputPath, Settings.OverridesFile);
|
||||||
Type.GLTypes = SpecReader.ReadTypeMap(Path.Combine(Settings.InputPath, glTypemap));
|
Type.GLTypes = SpecReader.ReadTypeMap(Path.Combine(Settings.InputPath, glTypemap));
|
||||||
Type.CSTypes = SpecReader.ReadCSTypeMap(Path.Combine(Settings.InputPath, csTypemap));
|
Type.CSTypes = SpecReader.ReadCSTypeMap(Path.Combine(Settings.InputPath, csTypemap));
|
||||||
SpecReader.ReadEnums(Path.Combine(Settings.InputPath, enumSpec), Enums, "gl");
|
SpecReader.ReadEnums(Path.Combine(Settings.InputPath, enumSpec), Enums, Profile);
|
||||||
SpecReader.ReadEnums(Path.Combine(Settings.InputPath, enumSpec), Enums, "glcore");
|
|
||||||
SpecReader.ReadEnums(overrides, Enums, "");
|
SpecReader.ReadEnums(overrides, Enums, "");
|
||||||
SpecReader.ReadDelegates(Path.Combine(Settings.InputPath, glSpec), Delegates, "gl");
|
SpecReader.ReadDelegates(Path.Combine(Settings.InputPath, glSpec), Delegates, Profile);
|
||||||
SpecReader.ReadDelegates(Path.Combine(Settings.InputPath, glSpec), Delegates, "glcore");
|
|
||||||
SpecReader.ReadDelegates(overrides, Delegates, "");
|
SpecReader.ReadDelegates(overrides, Delegates, "");
|
||||||
|
|
||||||
var enum_processor = new EnumProcessor(overrides);
|
var enum_processor = new EnumProcessor(overrides);
|
||||||
|
|
|
@ -162,9 +162,12 @@ namespace Bind
|
||||||
|
|
||||||
switch (mode)
|
switch (mode)
|
||||||
{
|
{
|
||||||
case GeneratorMode.GL3:
|
|
||||||
case GeneratorMode.GL2:
|
case GeneratorMode.GL2:
|
||||||
Generator = new GL4Generator("OpenGL", dirName);
|
Generator = new Generator("OpenGL", dirName);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GeneratorMode.GL3:
|
||||||
|
Generator = new GL4Generator("OpenGL.Core", dirName);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GeneratorMode.ES10:
|
case GeneratorMode.ES10:
|
||||||
|
|
Loading…
Reference in a new issue