* CppSpecWriter.cs: Fixed namespace paths for delegate loader.

This commit is contained in:
the_fiddler 2010-12-05 16:19:49 +00:00
parent 6b0784c6ca
commit b2d603efa8

View file

@ -159,10 +159,12 @@ namespace Bind
// Add Init() methods // Add Init() methods
foreach (var ext in wrappers.Keys) foreach (var ext in wrappers.Keys)
{ {
string path = null;
if (ext == "Core") if (ext == "Core")
sw.WriteLine("{0}::Delegates::Init()", Settings.GLClass); path = Settings.GLClass;
else else
sw.WriteLine("{0}::{1}::Delegates::Init()", Settings.GLClass, ext); path = String.Format("{0}::{1}", Settings.GLClass, ext);
sw.WriteLine("{0}::Init()", path);
sw.WriteLine("{"); sw.WriteLine("{");
sw.Indent(); sw.Indent();
@ -178,8 +180,8 @@ namespace Bind
continue; continue;
last_delegate = function.WrappedDelegate; last_delegate = function.WrappedDelegate;
sw.WriteLine("{0} = (p{0})GetAddress(\"gl{0}\");", sw.WriteLine("{0}::Delegates::{1} = ({0}::Delegates::p{1})GetAddress(\"gl{1}\");",
function.WrappedDelegate.Name); path, function.WrappedDelegate.Name);
} }
sw.WriteLine("#ifdef {0}", AllowDeprecated); sw.WriteLine("#ifdef {0}", AllowDeprecated);
sw.Indent(); sw.Indent();
@ -247,26 +249,32 @@ namespace Bind
var forward_compatible = wrappers[extension].Where(f => !f.Deprecated); var forward_compatible = wrappers[extension].Where(f => !f.Deprecated);
var deprecated = wrappers[extension].Where(f => f.Deprecated); var deprecated = wrappers[extension].Where(f => f.Deprecated);
for (var current = forward_compatible; current != deprecated; current = deprecated)
{
// Write delegates // Write delegates
last_delegate = null;
sw.WriteLine("private:"); sw.WriteLine("private:");
sw.WriteLine("struct Delegates"); sw.WriteLine("struct Delegates");
sw.WriteLine("{"); sw.WriteLine("{");
sw.Indent(); sw.Indent();
sw.WriteLine("static void Init();"); for (var current = forward_compatible; current != deprecated; current = deprecated)
{
last_delegate = null;
foreach (var f in current) foreach (var f in current)
{ {
WriteDelegate(sw, f.WrappedDelegate, ref last_delegate); WriteDelegate(sw, f.WrappedDelegate, ref last_delegate);
} }
sw.WriteLine("#ifdef {0}", AllowDeprecated);
sw.Indent();
}
sw.Unindent();
sw.WriteLine("#endif");
sw.Unindent(); sw.Unindent();
sw.WriteLine("};"); sw.WriteLine("};");
// Write wrappers // Write wrappers
last_delegate = null;
sw.WriteLine("public:"); sw.WriteLine("public:");
sw.WriteLine("static void Init();");
for (var current = forward_compatible; current != deprecated; current = deprecated)
{
last_delegate = null;
foreach (var f in current) foreach (var f in current)
{ {
if (last_delegate == f.WrappedDelegate) if (last_delegate == f.WrappedDelegate)