|
|
|
@ -581,37 +581,42 @@ namespace CppSharp.Generators.CSharp
@@ -581,37 +581,42 @@ namespace CppSharp.Generators.CSharp
|
|
|
|
|
|
|
|
|
|
foreach (var field in @class.Fields) |
|
|
|
|
{ |
|
|
|
|
if (ASTUtils.CheckIgnoreField(@class, field)) continue; |
|
|
|
|
GenerateClassField(@class, isInternal, field); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
PushBlock(CSharpBlockKind.Field); |
|
|
|
|
private void GenerateClassField(Class @class, bool isInternal, Field field) |
|
|
|
|
{ |
|
|
|
|
if (ASTUtils.CheckIgnoreField(@class, field)) return; |
|
|
|
|
|
|
|
|
|
if (isInternal) |
|
|
|
|
{ |
|
|
|
|
WriteLine("[FieldOffset({0})]", field.OffsetInBytes); |
|
|
|
|
PushBlock(CSharpBlockKind.Field); |
|
|
|
|
|
|
|
|
|
var result = field.Type.Visit(TypePrinter, field.QualifiedType.Qualifiers); |
|
|
|
|
if (isInternal) |
|
|
|
|
{ |
|
|
|
|
WriteLine("[FieldOffset({0})]", field.OffsetInBytes); |
|
|
|
|
|
|
|
|
|
Write("public {0} {1}", result.Type, SafeIdentifier(field.OriginalName)); |
|
|
|
|
var result = field.Type.Visit(TypePrinter, field.QualifiedType.Qualifiers); |
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(result.NameSuffix)) |
|
|
|
|
Write(result.NameSuffix); |
|
|
|
|
Write("public {0} {1}", result.Type, SafeIdentifier(field.OriginalName)); |
|
|
|
|
|
|
|
|
|
WriteLine(";"); |
|
|
|
|
} |
|
|
|
|
else if (@class.IsRefType) |
|
|
|
|
{ |
|
|
|
|
GenerateFieldProperty(field); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
GenerateDeclarationCommon(field); |
|
|
|
|
if (@class.IsUnion) |
|
|
|
|
WriteLine("[FieldOffset({0})]", field.Offset); |
|
|
|
|
WriteLine("public {0} {1};", field.Type, SafeIdentifier(field.Name)); |
|
|
|
|
} |
|
|
|
|
if (!string.IsNullOrWhiteSpace(result.NameSuffix)) |
|
|
|
|
Write(result.NameSuffix); |
|
|
|
|
|
|
|
|
|
PopBlock(NewLineKind.BeforeNextBlock); |
|
|
|
|
WriteLine(";"); |
|
|
|
|
} |
|
|
|
|
else if (@class.IsRefType) |
|
|
|
|
{ |
|
|
|
|
GenerateFieldProperty(field); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
GenerateDeclarationCommon(field); |
|
|
|
|
if (@class.IsUnion) |
|
|
|
|
WriteLine("[FieldOffset({0})]", field.Offset); |
|
|
|
|
WriteLine("public {0} {1};", field.Type, SafeIdentifier(field.Name)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
PopBlock(NewLineKind.BeforeNextBlock); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|