mirror of
https://github.com/Ryujinx/Opentk.git
synced 2025-02-02 10:01:08 +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
|
||||
{
|
||||
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.DelegatesFile = "Delegates.cs";
|
||||
Settings.EnumsFile = "Enums.cs";
|
||||
Settings.WrappersFile = "ES.cs";
|
||||
Settings.ImportsClass = "Core";
|
||||
Settings.DelegatesClass = "Delegates";
|
||||
|
||||
Settings.OutputClass = "GL";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,33 +27,20 @@
|
|||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Bind.GL2
|
||||
{
|
||||
class GL4Generator : ES.ESGenerator
|
||||
class GL4Generator : Generator
|
||||
{
|
||||
public GL4Generator(string name, string dirname)
|
||||
: base(name, dirname)
|
||||
: base(name, dirname)
|
||||
{
|
||||
glTypemap = "GL2/gl.tm";
|
||||
csTypemap = Settings.LanguageTypeMapFile;
|
||||
Settings.OverridesFile = Path.Combine(dirname, "gloverrides.xml");
|
||||
|
||||
enumSpec = "GL2/signatures.xml";
|
||||
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";
|
||||
Profile = "glcore";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,13 +37,33 @@ namespace Bind.GL2
|
|||
//protected static readonly Dictionary<string, string> doc_replacements;
|
||||
|
||||
protected ISpecReader SpecReader = new XmlSpecReader();
|
||||
protected string Profile = "gl";
|
||||
|
||||
#endregion
|
||||
|
||||
#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)
|
||||
{
|
||||
Settings.OutputNamespace = "Tao.OpenGl";
|
||||
|
@ -77,11 +97,9 @@ namespace Bind.GL2
|
|||
string overrides = Path.Combine(Settings.InputPath, Settings.OverridesFile);
|
||||
Type.GLTypes = SpecReader.ReadTypeMap(Path.Combine(Settings.InputPath, glTypemap));
|
||||
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, "glcore");
|
||||
SpecReader.ReadEnums(Path.Combine(Settings.InputPath, enumSpec), Enums, Profile);
|
||||
SpecReader.ReadEnums(overrides, Enums, "");
|
||||
SpecReader.ReadDelegates(Path.Combine(Settings.InputPath, glSpec), Delegates, "gl");
|
||||
SpecReader.ReadDelegates(Path.Combine(Settings.InputPath, glSpec), Delegates, "glcore");
|
||||
SpecReader.ReadDelegates(Path.Combine(Settings.InputPath, glSpec), Delegates, Profile);
|
||||
SpecReader.ReadDelegates(overrides, Delegates, "");
|
||||
|
||||
var enum_processor = new EnumProcessor(overrides);
|
||||
|
|
|
@ -162,9 +162,12 @@ namespace Bind
|
|||
|
||||
switch (mode)
|
||||
{
|
||||
case GeneratorMode.GL3:
|
||||
case GeneratorMode.GL2:
|
||||
Generator = new GL4Generator("OpenGL", dirName);
|
||||
Generator = new Generator("OpenGL", dirName);
|
||||
break;
|
||||
|
||||
case GeneratorMode.GL3:
|
||||
Generator = new GL4Generator("OpenGL.Core", dirName);
|
||||
break;
|
||||
|
||||
case GeneratorMode.ES10:
|
||||
|
|
Loading…
Reference in a new issue