|
|
@ -145,7 +145,7 @@ namespace CppSharp.Generators.CLI |
|
|
|
WriteLine("void {0}::{1}::set(::System::IntPtr object)", |
|
|
|
WriteLine("void {0}::{1}::set(::System::IntPtr object)", |
|
|
|
qualifiedIdentifier, Helpers.InstanceIdentifier); |
|
|
|
qualifiedIdentifier, Helpers.InstanceIdentifier); |
|
|
|
WriteOpenBraceAndIndent(); |
|
|
|
WriteOpenBraceAndIndent(); |
|
|
|
var nativeType = $"{@class.Tag} ::{@class.QualifiedOriginalName}*"; |
|
|
|
var nativeType = $"{typePrinter.PrintTag(@class)}::{@class.QualifiedOriginalName}*"; |
|
|
|
WriteLine("NativePtr = ({0})object.ToPointer();", nativeType); |
|
|
|
WriteLine("NativePtr = ({0})object.ToPointer();", nativeType); |
|
|
|
UnindentAndWriteCloseBrace(); |
|
|
|
UnindentAndWriteCloseBrace(); |
|
|
|
PopBlock(NewLineKind.BeforeNextBlock); |
|
|
|
PopBlock(NewLineKind.BeforeNextBlock); |
|
|
@ -258,7 +258,7 @@ namespace CppSharp.Generators.CLI |
|
|
|
WriteOpenBraceAndIndent(); |
|
|
|
WriteOpenBraceAndIndent(); |
|
|
|
WriteLine("auto __nativePtr = NativePtr;"); |
|
|
|
WriteLine("auto __nativePtr = NativePtr;"); |
|
|
|
WriteLine("NativePtr = 0;"); |
|
|
|
WriteLine("NativePtr = 0;"); |
|
|
|
WriteLine($"delete ({@class.Tag} ::{@class.QualifiedOriginalName}*) __nativePtr;", @class.QualifiedOriginalName); |
|
|
|
WriteLine($"delete ({typePrinter.PrintTag(@class)}::{@class.QualifiedOriginalName}*) __nativePtr;", @class.QualifiedOriginalName); |
|
|
|
UnindentAndWriteCloseBrace(); |
|
|
|
UnindentAndWriteCloseBrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -396,7 +396,7 @@ namespace CppSharp.Generators.CLI |
|
|
|
if (decl is Variable) |
|
|
|
if (decl is Variable) |
|
|
|
variable = $"::{@class.QualifiedOriginalName}::{decl.OriginalName}"; |
|
|
|
variable = $"::{@class.QualifiedOriginalName}::{decl.OriginalName}"; |
|
|
|
else |
|
|
|
else |
|
|
|
variable = $"(({@class.Tag} ::{@class.QualifiedOriginalName}*)NativePtr)->{decl.OriginalName}"; |
|
|
|
variable = $"(({typePrinter.PrintTag(@class)}::{@class.QualifiedOriginalName}*)NativePtr)->{decl.OriginalName}"; |
|
|
|
|
|
|
|
|
|
|
|
var ctx = new MarshalContext(Context, CurrentIndentation) |
|
|
|
var ctx = new MarshalContext(Context, CurrentIndentation) |
|
|
|
{ |
|
|
|
{ |
|
|
@ -484,7 +484,7 @@ namespace CppSharp.Generators.CLI |
|
|
|
else if (CLIGenerator.ShouldGenerateClassNativeField(@class)) |
|
|
|
else if (CLIGenerator.ShouldGenerateClassNativeField(@class)) |
|
|
|
variable = $"NativePtr->{decl.OriginalName}"; |
|
|
|
variable = $"NativePtr->{decl.OriginalName}"; |
|
|
|
else |
|
|
|
else |
|
|
|
variable = $"(({@class.Tag} ::{@class.QualifiedOriginalName}*)NativePtr)->{decl.OriginalName}"; |
|
|
|
variable = $"(({typePrinter.PrintTag(@class)}::{@class.QualifiedOriginalName}*)NativePtr)->{decl.OriginalName}"; |
|
|
|
|
|
|
|
|
|
|
|
var ctx = new MarshalContext(Context, CurrentIndentation) |
|
|
|
var ctx = new MarshalContext(Context, CurrentIndentation) |
|
|
|
{ |
|
|
|
{ |
|
|
@ -542,7 +542,7 @@ namespace CppSharp.Generators.CLI |
|
|
|
WriteLine("auto _fptr = (void (*)({0}))Marshal::GetFunctionPointerForDelegate({1}Instance).ToPointer();", |
|
|
|
WriteLine("auto _fptr = (void (*)({0}))Marshal::GetFunctionPointerForDelegate({1}Instance).ToPointer();", |
|
|
|
args, delegateName); |
|
|
|
args, delegateName); |
|
|
|
|
|
|
|
|
|
|
|
WriteLine($"(({@class.Tag} ::{@class.QualifiedOriginalName}*)NativePtr)->{@event.OriginalName}.Connect(_fptr);"); |
|
|
|
WriteLine($"(({typePrinter.PrintTag(@class)}::{@class.QualifiedOriginalName}*)NativePtr)->{@event.OriginalName}.Connect(_fptr);"); |
|
|
|
|
|
|
|
|
|
|
|
UnindentAndWriteCloseBrace(); |
|
|
|
UnindentAndWriteCloseBrace(); |
|
|
|
|
|
|
|
|
|
|
@ -627,7 +627,7 @@ namespace CppSharp.Generators.CLI |
|
|
|
|
|
|
|
|
|
|
|
Write("{0}::{1}(", qualifiedIdentifier, @class.Name); |
|
|
|
Write("{0}::{1}(", qualifiedIdentifier, @class.Name); |
|
|
|
|
|
|
|
|
|
|
|
string nativeType = $"{@class.Tag} ::{@class.QualifiedOriginalName}*"; |
|
|
|
string nativeType = $"{typePrinter.PrintTag(@class)}::{@class.QualifiedOriginalName}*"; |
|
|
|
WriteLine(!withOwnNativeInstanceParam ? "{0} native)" : "{0} native, bool ownNativeInstance)", nativeType); |
|
|
|
WriteLine(!withOwnNativeInstanceParam ? "{0} native)" : "{0} native, bool ownNativeInstance)", nativeType); |
|
|
|
|
|
|
|
|
|
|
|
var hasBase = GenerateClassConstructorBase(@class, null, withOwnNativeInstanceParam); |
|
|
|
var hasBase = GenerateClassConstructorBase(@class, null, withOwnNativeInstanceParam); |
|
|
@ -781,7 +781,7 @@ namespace CppSharp.Generators.CLI |
|
|
|
if (!@class.IsAbstract) |
|
|
|
if (!@class.IsAbstract) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var @params = GenerateFunctionParamsMarshal(method.Parameters, method); |
|
|
|
var @params = GenerateFunctionParamsMarshal(method.Parameters, method); |
|
|
|
Write($@"NativePtr = new {@class.Tag} ::{
|
|
|
|
Write($@"NativePtr = new {typePrinter.PrintTag(@class)}::{
|
|
|
|
@class.QualifiedOriginalName}(");
|
|
|
|
@class.QualifiedOriginalName}(");
|
|
|
|
GenerateFunctionParams(@params); |
|
|
|
GenerateFunctionParams(@params); |
|
|
|
WriteLine(");"); |
|
|
|
WriteLine(");"); |
|
|
@ -865,7 +865,7 @@ namespace CppSharp.Generators.CLI |
|
|
|
names.Add(marshal.Context.Return); |
|
|
|
names.Add(marshal.Context.Return); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
WriteLine($@"{@class.Tag} ::{
|
|
|
|
WriteLine($@"{typePrinter.PrintTag(@class)}::{
|
|
|
|
@class.QualifiedOriginalName} _native({string.Join(", ", names)});");
|
|
|
|
@class.QualifiedOriginalName} _native({string.Join(", ", names)});");
|
|
|
|
|
|
|
|
|
|
|
|
GenerateValueTypeConstructorCallProperties(@class); |
|
|
|
GenerateValueTypeConstructorCallProperties(@class); |
|
|
@ -957,7 +957,7 @@ namespace CppSharp.Generators.CLI |
|
|
|
var isValueType = @class != null && @class.IsValueType; |
|
|
|
var isValueType = @class != null && @class.IsValueType; |
|
|
|
if (isValueType && !IsNativeFunctionOrStaticMethod(function)) |
|
|
|
if (isValueType && !IsNativeFunctionOrStaticMethod(function)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
WriteLine($"auto {valueMarshalName} = {@class.Tag} ::{@class.QualifiedOriginalName}();"); |
|
|
|
WriteLine($"auto {valueMarshalName} = {typePrinter.PrintTag(@class)}::{@class.QualifiedOriginalName}();"); |
|
|
|
|
|
|
|
|
|
|
|
var param = new Parameter { Name = "(*this)" , Namespace = function.Namespace }; |
|
|
|
var param = new Parameter { Name = "(*this)" , Namespace = function.Namespace }; |
|
|
|
var ctx = new MarshalContext(Context, CurrentIndentation) |
|
|
|
var ctx = new MarshalContext(Context, CurrentIndentation) |
|
|
@ -1015,7 +1015,7 @@ namespace CppSharp.Generators.CLI |
|
|
|
if (isValueType) |
|
|
|
if (isValueType) |
|
|
|
Write($"{valueMarshalName}."); |
|
|
|
Write($"{valueMarshalName}."); |
|
|
|
else if (IsNativeMethod(function)) |
|
|
|
else if (IsNativeMethod(function)) |
|
|
|
Write($"(({@class.Tag} ::{@class.QualifiedOriginalName}*)NativePtr)->"); |
|
|
|
Write($"(({typePrinter.PrintTag(@class)}::{@class.QualifiedOriginalName}*)NativePtr)->"); |
|
|
|
Write("{0}(", function.OriginalName); |
|
|
|
Write("{0}(", function.OriginalName); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|