|
|
@ -1676,7 +1676,7 @@ namespace CppSharp.Generators.CSharp |
|
|
|
NewLine(); |
|
|
|
NewLine(); |
|
|
|
|
|
|
|
|
|
|
|
// Generate a delegate type for each method.
|
|
|
|
// Generate a delegate type for each method.
|
|
|
|
foreach (var method in wrappedEntries.Select(e => e.Method)) |
|
|
|
foreach (var method in wrappedEntries.Select(e => e.Method).Where(m => !m.Ignore)) |
|
|
|
GenerateVTableMethodDelegates(containingClass, method.Namespace.IsDependent ? |
|
|
|
GenerateVTableMethodDelegates(containingClass, method.Namespace.IsDependent ? |
|
|
|
(Method) method.InstantiatedFrom : method); |
|
|
|
(Method) method.InstantiatedFrom : method); |
|
|
|
|
|
|
|
|
|
|
@ -1701,7 +1701,7 @@ namespace CppSharp.Generators.CSharp |
|
|
|
WriteLine($"static VTableLoader()"); |
|
|
|
WriteLine($"static VTableLoader()"); |
|
|
|
{ |
|
|
|
{ |
|
|
|
WriteOpenBraceAndIndent(); |
|
|
|
WriteOpenBraceAndIndent(); |
|
|
|
foreach (var entry in wrappedEntries.Distinct()) |
|
|
|
foreach (var entry in wrappedEntries.Distinct().Where(e => !e.Method.Ignore)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var name = GetVTableMethodDelegateName(entry.Method); |
|
|
|
var name = GetVTableMethodDelegateName(entry.Method); |
|
|
|
WriteLine($"{name + "Instance"} += {name}Hook;"); |
|
|
|
WriteLine($"{name + "Instance"} += {name}Hook;"); |
|
|
@ -1709,9 +1709,12 @@ namespace CppSharp.Generators.CSharp |
|
|
|
for (var i = 0; i < wrappedEntries.Count; ++i) |
|
|
|
for (var i = 0; i < wrappedEntries.Count; ++i) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var entry = wrappedEntries[i]; |
|
|
|
var entry = wrappedEntries[i]; |
|
|
|
|
|
|
|
if (!entry.Method.Ignore) |
|
|
|
|
|
|
|
{ |
|
|
|
var name = GetVTableMethodDelegateName(entry.Method); |
|
|
|
var name = GetVTableMethodDelegateName(entry.Method); |
|
|
|
WriteLine($"Thunks[{i}] = Marshal.GetFunctionPointerForDelegate({name + "Instance"});"); |
|
|
|
WriteLine($"Thunks[{i}] = Marshal.GetFunctionPointerForDelegate({name + "Instance"});"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
UnindentAndWriteCloseBrace(); |
|
|
|
UnindentAndWriteCloseBrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
NewLine(); |
|
|
|
NewLine(); |
|
|
|