Update typed array API to match "GDScript: Fix typed arrays".
parent
014eda2535
commit
37f6e35974
|
@ -696,6 +696,7 @@ def generate_builtin_class_header(builtin_api, size, used_classes, fully_used_cl
|
|||
result.append("\tconst Variant &operator[](int p_index) const;")
|
||||
result.append("\tVariant &operator[](int p_index);")
|
||||
result.append("\tvoid set_typed(uint32_t p_type, const StringName &p_class_name, const Variant &p_script);")
|
||||
result.append("\tvoid _ref(const Array &p_from) const;")
|
||||
|
||||
if class_name == "Dictionary":
|
||||
result.append("\tconst Variant &operator[](const Variant &p_key) const;")
|
||||
|
|
|
@ -18912,6 +18912,19 @@
|
|||
"is_static": false,
|
||||
"hash": 3173160232
|
||||
},
|
||||
{
|
||||
"name": "assign",
|
||||
"is_vararg": false,
|
||||
"is_const": false,
|
||||
"is_static": false,
|
||||
"hash": 2307260970,
|
||||
"arguments": [
|
||||
{
|
||||
"name": "array",
|
||||
"type": "Array"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "push_back",
|
||||
"is_vararg": false,
|
||||
|
@ -19366,20 +19379,6 @@
|
|||
"is_static": false,
|
||||
"hash": 1460142086
|
||||
},
|
||||
{
|
||||
"name": "typed_assign",
|
||||
"return_type": "bool",
|
||||
"is_vararg": false,
|
||||
"is_const": false,
|
||||
"is_static": false,
|
||||
"hash": 1485459766,
|
||||
"arguments": [
|
||||
{
|
||||
"name": "array",
|
||||
"type": "Array"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "is_typed",
|
||||
"return_type": "bool",
|
||||
|
@ -19388,6 +19387,20 @@
|
|||
"is_static": false,
|
||||
"hash": 3918633141
|
||||
},
|
||||
{
|
||||
"name": "is_same_typed",
|
||||
"return_type": "bool",
|
||||
"is_vararg": false,
|
||||
"is_const": true,
|
||||
"is_static": false,
|
||||
"hash": 2988181878,
|
||||
"arguments": [
|
||||
{
|
||||
"name": "array",
|
||||
"type": "Array"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "get_typed_builtin",
|
||||
"return_type": "int",
|
||||
|
@ -30737,6 +30750,43 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "set_input_reset",
|
||||
"is_const": false,
|
||||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 300928843,
|
||||
"arguments": [
|
||||
{
|
||||
"name": "input",
|
||||
"type": "int",
|
||||
"meta": "int32"
|
||||
},
|
||||
{
|
||||
"name": "enable",
|
||||
"type": "bool"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "is_input_reset",
|
||||
"is_const": true,
|
||||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 1116898809,
|
||||
"return_value": {
|
||||
"type": "bool"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"name": "input",
|
||||
"type": "int",
|
||||
"meta": "int32"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "set_xfade_time",
|
||||
"is_const": false,
|
||||
|
@ -30788,31 +30838,6 @@
|
|||
"return_value": {
|
||||
"type": "Curve"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "set_reset",
|
||||
"is_const": false,
|
||||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 2586408642,
|
||||
"arguments": [
|
||||
{
|
||||
"name": "reset",
|
||||
"type": "bool"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "is_reset",
|
||||
"is_const": true,
|
||||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 36873697,
|
||||
"return_value": {
|
||||
"type": "bool"
|
||||
}
|
||||
}
|
||||
],
|
||||
"properties": [
|
||||
|
@ -30828,12 +30853,6 @@
|
|||
"setter": "set_xfade_curve",
|
||||
"getter": "get_xfade_curve"
|
||||
},
|
||||
{
|
||||
"type": "bool",
|
||||
"name": "reset",
|
||||
"setter": "set_reset",
|
||||
"getter": "is_reset"
|
||||
},
|
||||
{
|
||||
"type": "int",
|
||||
"name": "input_count",
|
||||
|
@ -70751,23 +70770,14 @@
|
|||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 3871247334,
|
||||
"hash": 1262296096,
|
||||
"return_value": {
|
||||
"type": "enum::Error"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"name": "key",
|
||||
"type": "CryptoKey"
|
||||
},
|
||||
{
|
||||
"name": "certificate",
|
||||
"type": "X509Certificate"
|
||||
},
|
||||
{
|
||||
"name": "chain",
|
||||
"type": "X509Certificate",
|
||||
"default_value": "null"
|
||||
"name": "server_options",
|
||||
"type": "TLSOptions"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -75968,18 +75978,14 @@
|
|||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 3447544237,
|
||||
"hash": 1262296096,
|
||||
"return_value": {
|
||||
"type": "enum::Error"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"name": "key",
|
||||
"type": "CryptoKey"
|
||||
},
|
||||
{
|
||||
"name": "certificate",
|
||||
"type": "X509Certificate"
|
||||
"name": "server_options",
|
||||
"type": "TLSOptions"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -75989,23 +75995,19 @@
|
|||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 2959136280,
|
||||
"hash": 3097527179,
|
||||
"return_value": {
|
||||
"type": "enum::Error"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"name": "certificate",
|
||||
"type": "X509Certificate"
|
||||
},
|
||||
{
|
||||
"name": "hostname",
|
||||
"type": "String"
|
||||
},
|
||||
{
|
||||
"name": "verify",
|
||||
"type": "bool",
|
||||
"default_value": "true"
|
||||
"name": "client_options",
|
||||
"type": "TLSOptions",
|
||||
"default_value": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -106783,7 +106785,7 @@
|
|||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 2602796911,
|
||||
"hash": 1970282951,
|
||||
"return_value": {
|
||||
"type": "enum::Error"
|
||||
},
|
||||
|
@ -106799,14 +106801,9 @@
|
|||
"default_value": "-1"
|
||||
},
|
||||
{
|
||||
"name": "use_tls",
|
||||
"type": "bool",
|
||||
"default_value": "false"
|
||||
},
|
||||
{
|
||||
"name": "verify_host",
|
||||
"type": "bool",
|
||||
"default_value": "true"
|
||||
"name": "tls_options",
|
||||
"type": "TLSOptions",
|
||||
"default_value": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -107209,7 +107206,7 @@
|
|||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 1899023990,
|
||||
"hash": 2720304520,
|
||||
"return_value": {
|
||||
"type": "enum::Error"
|
||||
},
|
||||
|
@ -107223,11 +107220,6 @@
|
|||
"type": "PackedStringArray",
|
||||
"default_value": "PackedStringArray()"
|
||||
},
|
||||
{
|
||||
"name": "tls_validate_domain",
|
||||
"type": "bool",
|
||||
"default_value": "true"
|
||||
},
|
||||
{
|
||||
"name": "method",
|
||||
"type": "enum::HTTPClient.Method",
|
||||
|
@ -107246,7 +107238,7 @@
|
|||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 3236422912,
|
||||
"hash": 4282724657,
|
||||
"return_value": {
|
||||
"type": "enum::Error"
|
||||
},
|
||||
|
@ -107260,11 +107252,6 @@
|
|||
"type": "PackedStringArray",
|
||||
"default_value": "PackedStringArray()"
|
||||
},
|
||||
{
|
||||
"name": "tls_validate_domain",
|
||||
"type": "bool",
|
||||
"default_value": "true"
|
||||
},
|
||||
{
|
||||
"name": "method",
|
||||
"type": "enum::HTTPClient.Method",
|
||||
|
@ -107285,6 +107272,20 @@
|
|||
"is_virtual": false,
|
||||
"hash": 3218959716
|
||||
},
|
||||
{
|
||||
"name": "set_tls_options",
|
||||
"is_const": false,
|
||||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 2210231844,
|
||||
"arguments": [
|
||||
{
|
||||
"name": "client_options",
|
||||
"type": "TLSOptions"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "get_http_client_status",
|
||||
"is_const": true,
|
||||
|
@ -109060,7 +109061,7 @@
|
|||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 3422491167,
|
||||
"hash": 4094210332,
|
||||
"return_value": {
|
||||
"type": "enum::Error"
|
||||
},
|
||||
|
@ -109074,12 +109075,6 @@
|
|||
"type": "enum::Image.CompressSource",
|
||||
"default_value": "0"
|
||||
},
|
||||
{
|
||||
"name": "lossy_quality",
|
||||
"type": "float",
|
||||
"meta": "float",
|
||||
"default_value": "0.7"
|
||||
},
|
||||
{
|
||||
"name": "astc_format",
|
||||
"type": "enum::Image.ASTCFormat",
|
||||
|
@ -109093,7 +109088,7 @@
|
|||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 180597543,
|
||||
"hash": 279105990,
|
||||
"return_value": {
|
||||
"type": "enum::Error"
|
||||
},
|
||||
|
@ -109106,12 +109101,6 @@
|
|||
"name": "channels",
|
||||
"type": "enum::Image.UsedChannels"
|
||||
},
|
||||
{
|
||||
"name": "lossy_quality",
|
||||
"type": "float",
|
||||
"meta": "float",
|
||||
"default_value": "0.7"
|
||||
},
|
||||
{
|
||||
"name": "astc_format",
|
||||
"type": "enum::Image.ASTCFormat",
|
||||
|
@ -110130,7 +110119,7 @@
|
|||
{
|
||||
"name": "blend_shapes",
|
||||
"type": "typedarray::Array",
|
||||
"default_value": "[]"
|
||||
"default_value": "Array[Array]([])"
|
||||
},
|
||||
{
|
||||
"name": "lods",
|
||||
|
@ -142942,7 +142931,7 @@
|
|||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 293566484,
|
||||
"hash": 1801538152,
|
||||
"return_value": {
|
||||
"type": "enum::Error"
|
||||
},
|
||||
|
@ -142952,18 +142941,12 @@
|
|||
"type": "PacketPeerUDP"
|
||||
},
|
||||
{
|
||||
"name": "validate_certs",
|
||||
"type": "bool",
|
||||
"default_value": "true"
|
||||
"name": "hostname",
|
||||
"type": "String"
|
||||
},
|
||||
{
|
||||
"name": "for_hostname",
|
||||
"type": "String",
|
||||
"default_value": "\"\""
|
||||
},
|
||||
{
|
||||
"name": "valid_certificate",
|
||||
"type": "X509Certificate",
|
||||
"name": "client_options",
|
||||
"type": "TLSOptions",
|
||||
"default_value": "null"
|
||||
}
|
||||
]
|
||||
|
@ -152015,7 +151998,7 @@
|
|||
{
|
||||
"name": "exclude",
|
||||
"type": "typedarray::RID",
|
||||
"default_value": "[]"
|
||||
"default_value": "Array[RID]([])"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -152277,7 +152260,7 @@
|
|||
{
|
||||
"name": "exclude",
|
||||
"type": "typedarray::RID",
|
||||
"default_value": "[]"
|
||||
"default_value": "Array[RID]([])"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -179773,7 +179756,7 @@
|
|||
{
|
||||
"name": "specialization_constants",
|
||||
"type": "typedarray::RDPipelineSpecializationConstant",
|
||||
"default_value": "[]"
|
||||
"default_value": "Array[RDPipelineSpecializationConstant]([])"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -179812,7 +179795,7 @@
|
|||
{
|
||||
"name": "specialization_constants",
|
||||
"type": "typedarray::RDPipelineSpecializationConstant",
|
||||
"default_value": "[]"
|
||||
"default_value": "Array[RDPipelineSpecializationConstant]([])"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -179967,7 +179950,7 @@
|
|||
{
|
||||
"name": "storage_textures",
|
||||
"type": "Array",
|
||||
"default_value": "[]"
|
||||
"default_value": "Array[RID]([])"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -180032,7 +180015,7 @@
|
|||
{
|
||||
"name": "storage_textures",
|
||||
"type": "typedarray::RID",
|
||||
"default_value": "[]"
|
||||
"default_value": "Array[RID]([])"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -212668,7 +212651,7 @@
|
|||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 2359858912,
|
||||
"hash": 4292689651,
|
||||
"return_value": {
|
||||
"type": "enum::Error"
|
||||
},
|
||||
|
@ -212678,17 +212661,8 @@
|
|||
"type": "StreamPeer"
|
||||
},
|
||||
{
|
||||
"name": "private_key",
|
||||
"type": "CryptoKey"
|
||||
},
|
||||
{
|
||||
"name": "certificate",
|
||||
"type": "X509Certificate"
|
||||
},
|
||||
{
|
||||
"name": "chain",
|
||||
"type": "X509Certificate",
|
||||
"default_value": "null"
|
||||
"name": "server_options",
|
||||
"type": "TLSOptions"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -212698,7 +212672,7 @@
|
|||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 127827767,
|
||||
"hash": 1325480781,
|
||||
"return_value": {
|
||||
"type": "enum::Error"
|
||||
},
|
||||
|
@ -212708,18 +212682,12 @@
|
|||
"type": "StreamPeer"
|
||||
},
|
||||
{
|
||||
"name": "validate_certs",
|
||||
"type": "bool",
|
||||
"default_value": "false"
|
||||
"name": "common_name",
|
||||
"type": "String"
|
||||
},
|
||||
{
|
||||
"name": "for_hostname",
|
||||
"type": "String",
|
||||
"default_value": "\"\""
|
||||
},
|
||||
{
|
||||
"name": "valid_certificate",
|
||||
"type": "X509Certificate",
|
||||
"name": "client_options",
|
||||
"type": "TLSOptions",
|
||||
"default_value": "null"
|
||||
}
|
||||
]
|
||||
|
@ -212753,39 +212721,6 @@
|
|||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 3218959716
|
||||
},
|
||||
{
|
||||
"name": "set_blocking_handshake_enabled",
|
||||
"is_const": false,
|
||||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 2586408642,
|
||||
"arguments": [
|
||||
{
|
||||
"name": "enabled",
|
||||
"type": "bool"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "is_blocking_handshake_enabled",
|
||||
"is_const": true,
|
||||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 36873697,
|
||||
"return_value": {
|
||||
"type": "bool"
|
||||
}
|
||||
}
|
||||
],
|
||||
"properties": [
|
||||
{
|
||||
"type": "bool",
|
||||
"name": "blocking_handshake",
|
||||
"setter": "set_blocking_handshake_enabled",
|
||||
"getter": "is_blocking_handshake_enabled"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -215651,6 +215586,77 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "TLSOptions",
|
||||
"is_refcounted": true,
|
||||
"is_instantiable": false,
|
||||
"inherits": "RefCounted",
|
||||
"api_type": "core",
|
||||
"methods": [
|
||||
{
|
||||
"name": "client",
|
||||
"is_const": false,
|
||||
"is_vararg": false,
|
||||
"is_static": true,
|
||||
"is_virtual": false,
|
||||
"hash": 3565000357,
|
||||
"return_value": {
|
||||
"type": "TLSOptions"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"name": "trusted_chain",
|
||||
"type": "X509Certificate",
|
||||
"default_value": "null"
|
||||
},
|
||||
{
|
||||
"name": "common_name_override",
|
||||
"type": "String",
|
||||
"default_value": "\"\""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "client_unsafe",
|
||||
"is_const": false,
|
||||
"is_vararg": false,
|
||||
"is_static": true,
|
||||
"is_virtual": false,
|
||||
"hash": 2090251749,
|
||||
"return_value": {
|
||||
"type": "TLSOptions"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"name": "trusted_chain",
|
||||
"type": "X509Certificate",
|
||||
"default_value": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "server",
|
||||
"is_const": false,
|
||||
"is_vararg": false,
|
||||
"is_static": true,
|
||||
"is_virtual": false,
|
||||
"hash": 36969539,
|
||||
"return_value": {
|
||||
"type": "TLSOptions"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"name": "key",
|
||||
"type": "CryptoKey"
|
||||
},
|
||||
{
|
||||
"name": "certificate",
|
||||
"type": "X509Certificate"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "TabBar",
|
||||
"is_refcounted": false,
|
||||
|
@ -258837,7 +258843,7 @@
|
|||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 3369256093,
|
||||
"hash": 3097527179,
|
||||
"return_value": {
|
||||
"type": "enum::Error"
|
||||
},
|
||||
|
@ -258847,13 +258853,8 @@
|
|||
"type": "String"
|
||||
},
|
||||
{
|
||||
"name": "verify_tls",
|
||||
"type": "bool",
|
||||
"default_value": "true"
|
||||
},
|
||||
{
|
||||
"name": "tls_certificate",
|
||||
"type": "X509Certificate",
|
||||
"name": "tls_client_options",
|
||||
"type": "TLSOptions",
|
||||
"default_value": "null"
|
||||
}
|
||||
]
|
||||
|
@ -258864,7 +258865,7 @@
|
|||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 2363339283,
|
||||
"hash": 337374795,
|
||||
"return_value": {
|
||||
"type": "enum::Error"
|
||||
},
|
||||
|
@ -258880,13 +258881,8 @@
|
|||
"default_value": "\"*\""
|
||||
},
|
||||
{
|
||||
"name": "tls_key",
|
||||
"type": "CryptoKey",
|
||||
"default_value": "null"
|
||||
},
|
||||
{
|
||||
"name": "tls_certificate",
|
||||
"type": "X509Certificate",
|
||||
"name": "tls_server_options",
|
||||
"type": "TLSOptions",
|
||||
"default_value": "null"
|
||||
}
|
||||
]
|
||||
|
@ -259195,7 +259191,7 @@
|
|||
"is_vararg": false,
|
||||
"is_static": false,
|
||||
"is_virtual": false,
|
||||
"hash": 3369256093,
|
||||
"hash": 3097527179,
|
||||
"return_value": {
|
||||
"type": "enum::Error"
|
||||
},
|
||||
|
@ -259205,13 +259201,8 @@
|
|||
"type": "String"
|
||||
},
|
||||
{
|
||||
"name": "verify_tls",
|
||||
"type": "bool",
|
||||
"default_value": "true"
|
||||
},
|
||||
{
|
||||
"name": "trusted_tls_certificate",
|
||||
"type": "X509Certificate",
|
||||
"name": "tls_client_options",
|
||||
"type": "TLSOptions",
|
||||
"default_value": "null"
|
||||
}
|
||||
]
|
||||
|
|
|
@ -551,6 +551,7 @@ typedef struct {
|
|||
|
||||
GDExtensionVariantPtr (*array_operator_index)(GDExtensionTypePtr p_self, GDExtensionInt p_index); // p_self should be an Array ptr
|
||||
GDExtensionVariantPtr (*array_operator_index_const)(GDExtensionConstTypePtr p_self, GDExtensionInt p_index); // p_self should be an Array ptr
|
||||
void (*array_ref)(GDExtensionTypePtr p_self, GDExtensionConstTypePtr p_from); // p_self should be an Array ptr
|
||||
void (*array_set_typed)(GDExtensionTypePtr p_self, uint32_t p_type, GDExtensionConstStringNamePtr p_class_name, GDExtensionConstVariantPtr p_script); // p_self should be an Array ptr
|
||||
|
||||
/* Dictionary functions */
|
||||
|
|
|
@ -39,14 +39,9 @@ namespace godot {
|
|||
template <class T>
|
||||
class TypedArray : public Array {
|
||||
public:
|
||||
template <class U>
|
||||
_FORCE_INLINE_ void operator=(const TypedArray<U> &p_array) {
|
||||
static_assert(__is_base_of(T, U));
|
||||
typed_assign(p_array);
|
||||
}
|
||||
|
||||
_FORCE_INLINE_ void operator=(const Array &p_array) {
|
||||
typed_assign(p_array);
|
||||
ERR_FAIL_COND_MSG(!is_same_typed(p_array), "Cannot assign an array with a different element type.");
|
||||
_ref(p_array);
|
||||
}
|
||||
_FORCE_INLINE_ TypedArray(const Variant &p_variant) :
|
||||
Array(p_variant.operator Array(), Variant::OBJECT, T::get_class_static(), Variant()) {
|
||||
|
@ -61,22 +56,23 @@ public:
|
|||
|
||||
// specialization for the rest of variant types
|
||||
|
||||
#define MAKE_TYPED_ARRAY(m_type, m_variant_type) \
|
||||
template <> \
|
||||
class TypedArray<m_type> : public Array { \
|
||||
public: \
|
||||
_FORCE_INLINE_ void operator=(const Array &p_array) { \
|
||||
typed_assign(p_array); \
|
||||
} \
|
||||
_FORCE_INLINE_ TypedArray(const Variant &p_variant) : \
|
||||
Array(p_variant.operator Array(), m_variant_type, StringName(), Variant()) { \
|
||||
} \
|
||||
_FORCE_INLINE_ TypedArray(const Array &p_array) : \
|
||||
Array(p_array, m_variant_type, StringName(), Variant()) { \
|
||||
} \
|
||||
_FORCE_INLINE_ TypedArray() { \
|
||||
set_typed(m_variant_type, StringName(), Variant()); \
|
||||
} \
|
||||
#define MAKE_TYPED_ARRAY(m_type, m_variant_type) \
|
||||
template <> \
|
||||
class TypedArray<m_type> : public Array { \
|
||||
public: \
|
||||
_FORCE_INLINE_ void operator=(const Array &p_array) { \
|
||||
ERR_FAIL_COND_MSG(!is_same_typed(p_array), "Cannot assign an array with a different element type."); \
|
||||
_ref(p_array); \
|
||||
} \
|
||||
_FORCE_INLINE_ TypedArray(const Variant &p_variant) : \
|
||||
Array(p_variant.operator Array(), m_variant_type, StringName(), Variant()) { \
|
||||
} \
|
||||
_FORCE_INLINE_ TypedArray(const Array &p_array) : \
|
||||
Array(p_array, m_variant_type, StringName(), Variant()) { \
|
||||
} \
|
||||
_FORCE_INLINE_ TypedArray() { \
|
||||
set_typed(m_variant_type, StringName(), Variant()); \
|
||||
} \
|
||||
};
|
||||
|
||||
MAKE_TYPED_ARRAY(bool, Variant::BOOL)
|
||||
|
|
|
@ -212,6 +212,10 @@ void Array::set_typed(uint32_t p_type, const StringName &p_class_name, const Var
|
|||
internal::gde_interface->array_set_typed((GDExtensionTypePtr *)this, p_type, (GDExtensionConstStringNamePtr)&p_class_name, (GDExtensionConstVariantPtr)&p_script);
|
||||
}
|
||||
|
||||
void Array::_ref(const Array &p_from) const {
|
||||
internal::gde_interface->array_ref((GDExtensionTypePtr *)this, (GDExtensionConstTypePtr *)&p_from);
|
||||
}
|
||||
|
||||
const Variant &Dictionary::operator[](const Variant &p_key) const {
|
||||
const Variant *var = (const Variant *)internal::gde_interface->dictionary_operator_index_const((GDExtensionTypePtr *)this, (GDExtensionVariantPtr)&p_key);
|
||||
return *var;
|
||||
|
|
Loading…
Reference in New Issue