Skip to content

Instantly share code, notes, and snippets.

@kassane
Last active December 29, 2023 17:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kassane/e8ff690996aa0be1172def45948130a2 to your computer and use it in GitHub Desktop.
Save kassane/e8ff690996aa0be1172def45948130a2 to your computer and use it in GitHub Desktop.
Godot 4 - GDExtension for zig bindings
// GDExtension - zig (v0.11.0 or master) binding
// cmd: godot --dump-gdextension-interface -q --headless
// based on: https://github.com/godot-dlang/godot-dlang/blob/master/gdextension_interface.h
const std = @import("std");
pub const GDExtensionVariantType = enum(c_uint) {
GDEXTENSION_VARIANT_TYPE_NIL = 0,
GDEXTENSION_VARIANT_TYPE_BOOL = 1,
GDEXTENSION_VARIANT_TYPE_INT = 2,
GDEXTENSION_VARIANT_TYPE_FLOAT = 3,
GDEXTENSION_VARIANT_TYPE_STRING = 4,
GDEXTENSION_VARIANT_TYPE_VECTOR2 = 5,
GDEXTENSION_VARIANT_TYPE_VECTOR2I = 6,
GDEXTENSION_VARIANT_TYPE_RECT2 = 7,
GDEXTENSION_VARIANT_TYPE_RECT2I = 8,
GDEXTENSION_VARIANT_TYPE_VECTOR3 = 9,
GDEXTENSION_VARIANT_TYPE_VECTOR3I = 10,
GDEXTENSION_VARIANT_TYPE_TRANSFORM2D = 11,
GDEXTENSION_VARIANT_TYPE_VECTOR4 = 12,
GDEXTENSION_VARIANT_TYPE_VECTOR4I = 13,
GDEXTENSION_VARIANT_TYPE_PLANE = 14,
GDEXTENSION_VARIANT_TYPE_QUATERNION = 15,
GDEXTENSION_VARIANT_TYPE_AABB = 16,
GDEXTENSION_VARIANT_TYPE_BASIS = 17,
GDEXTENSION_VARIANT_TYPE_TRANSFORM3D = 18,
GDEXTENSION_VARIANT_TYPE_PROJECTION = 19,
GDEXTENSION_VARIANT_TYPE_COLOR = 20,
GDEXTENSION_VARIANT_TYPE_STRING_NAME = 21,
GDEXTENSION_VARIANT_TYPE_NODE_PATH = 22,
GDEXTENSION_VARIANT_TYPE_RID = 23,
GDEXTENSION_VARIANT_TYPE_OBJECT = 24,
GDEXTENSION_VARIANT_TYPE_CALLABLE = 25,
GDEXTENSION_VARIANT_TYPE_SIGNAL = 26,
GDEXTENSION_VARIANT_TYPE_DICTIONARY = 27,
GDEXTENSION_VARIANT_TYPE_ARRAY = 28,
GDEXTENSION_VARIANT_TYPE_PACKED_BYTE_ARRAY = 29,
GDEXTENSION_VARIANT_TYPE_PACKED_INT32_ARRAY = 30,
GDEXTENSION_VARIANT_TYPE_PACKED_INT64_ARRAY = 31,
GDEXTENSION_VARIANT_TYPE_PACKED_FLOAT32_ARRAY = 32,
GDEXTENSION_VARIANT_TYPE_PACKED_FLOAT64_ARRAY = 33,
GDEXTENSION_VARIANT_TYPE_PACKED_STRING_ARRAY = 34,
GDEXTENSION_VARIANT_TYPE_PACKED_VECTOR2_ARRAY = 35,
GDEXTENSION_VARIANT_TYPE_PACKED_VECTOR3_ARRAY = 36,
GDEXTENSION_VARIANT_TYPE_PACKED_COLOR_ARRAY = 37,
GDEXTENSION_VARIANT_TYPE_VARIANT_MAX = 38,
};
pub const GDExtensionVariantOperator = enum(c_uint) {
GDEXTENSION_VARIANT_OP_EQUAL = 0,
GDEXTENSION_VARIANT_OP_NOT_EQUAL = 1,
GDEXTENSION_VARIANT_OP_LESS = 2,
GDEXTENSION_VARIANT_OP_LESS_EQUAL = 3,
GDEXTENSION_VARIANT_OP_GREATER = 4,
GDEXTENSION_VARIANT_OP_GREATER_EQUAL = 5,
GDEXTENSION_VARIANT_OP_ADD = 6,
GDEXTENSION_VARIANT_OP_SUBTRACT = 7,
GDEXTENSION_VARIANT_OP_MULTIPLY = 8,
GDEXTENSION_VARIANT_OP_DIVIDE = 9,
GDEXTENSION_VARIANT_OP_NEGATE = 10,
GDEXTENSION_VARIANT_OP_POSITIVE = 11,
GDEXTENSION_VARIANT_OP_MODULE = 12,
GDEXTENSION_VARIANT_OP_POWER = 13,
GDEXTENSION_VARIANT_OP_SHIFT_LEFT = 14,
GDEXTENSION_VARIANT_OP_SHIFT_RIGHT = 15,
GDEXTENSION_VARIANT_OP_BIT_AND = 16,
GDEXTENSION_VARIANT_OP_BIT_OR = 17,
GDEXTENSION_VARIANT_OP_BIT_XOR = 18,
GDEXTENSION_VARIANT_OP_BIT_NEGATE = 19,
GDEXTENSION_VARIANT_OP_AND = 20,
GDEXTENSION_VARIANT_OP_OR = 21,
GDEXTENSION_VARIANT_OP_XOR = 22,
GDEXTENSION_VARIANT_OP_NOT = 23,
GDEXTENSION_VARIANT_OP_IN = 24,
GDEXTENSION_VARIANT_OP_MAX = 25,
};
pub const GDExtensionVariantPtr = ?*anyopaque;
pub const GDExtensionConstVariantPtr = ?*const anyopaque;
pub const GDExtensionStringNamePtr = ?*anyopaque;
pub const GDExtensionConstStringNamePtr = ?*const anyopaque;
pub const GDExtensionStringPtr = ?*anyopaque;
pub const GDExtensionConstStringPtr = ?*const anyopaque;
pub const GDExtensionObjectPtr = ?*anyopaque;
pub const GDExtensionConstObjectPtr = ?*const anyopaque;
pub const GDExtensionTypePtr = ?*anyopaque;
pub const GDExtensionConstTypePtr = ?*const anyopaque;
pub const GDExtensionMethodBindPtr = ?*const anyopaque;
pub const GDExtensionInt = i64;
pub const GDExtensionBool = u8;
pub const GDObjectInstanceID = u64;
pub const GDExtensionRefPtr = ?*anyopaque;
pub const GDExtensionConstRefPtr = ?*const anyopaque;
pub const GDExtensionCallErrorType = enum(c_uint) {
GDEXTENSION_CALL_OK = 0,
GDEXTENSION_CALL_ERROR_INVALID_METHOD = 1,
GDEXTENSION_CALL_ERROR_INVALID_ARGUMENT = 2,
GDEXTENSION_CALL_ERROR_TOO_MANY_ARGUMENTS = 3,
GDEXTENSION_CALL_ERROR_TOO_FEW_ARGUMENTS = 4,
GDEXTENSION_CALL_ERROR_INSTANCE_IS_NULL = 5,
GDEXTENSION_CALL_ERROR_METHOD_NOT_CONST = 6,
};
pub const GDExtensionCallError = extern struct {
@"error": GDExtensionCallErrorType = std.mem.zeroes(GDExtensionCallErrorType),
argument: i32 = std.mem.zeroes(i32),
expected: i32 = std.mem.zeroes(i32),
};
pub const GDExtensionVariantFromTypeConstructorFunc = ?*const fn (GDExtensionVariantPtr, GDExtensionTypePtr) callconv(.C) void;
pub const GDExtensionTypeFromVariantConstructorFunc = ?*const fn (GDExtensionTypePtr, GDExtensionVariantPtr) callconv(.C) void;
pub const GDExtensionPtrOperatorEvaluator = ?*const fn (GDExtensionConstTypePtr, GDExtensionConstTypePtr, GDExtensionTypePtr) callconv(.C) void;
pub const GDExtensionPtrBuiltInMethod = ?*const fn (GDExtensionTypePtr, ?[*]const GDExtensionConstTypePtr, GDExtensionTypePtr, c_int) callconv(.C) void;
pub const GDExtensionPtrConstructor = ?*const fn (GDExtensionTypePtr, ?[*]const GDExtensionConstTypePtr) callconv(.C) void;
pub const GDExtensionPtrDestructor = ?*const fn (GDExtensionTypePtr) callconv(.C) void;
pub const GDExtensionPtrSetter = ?*const fn (GDExtensionTypePtr, GDExtensionConstTypePtr) callconv(.C) void;
pub const GDExtensionPtrGetter = ?*const fn (GDExtensionConstTypePtr, GDExtensionTypePtr) callconv(.C) void;
pub const GDExtensionPtrIndexedSetter = ?*const fn (GDExtensionTypePtr, GDExtensionInt, GDExtensionConstTypePtr) callconv(.C) void;
pub const GDExtensionPtrIndexedGetter = ?*const fn (GDExtensionConstTypePtr, GDExtensionInt, GDExtensionTypePtr) callconv(.C) void;
pub const GDExtensionPtrKeyedSetter = ?*const fn (GDExtensionTypePtr, GDExtensionConstTypePtr, GDExtensionConstTypePtr) callconv(.C) void;
pub const GDExtensionPtrKeyedGetter = ?*const fn (GDExtensionConstTypePtr, GDExtensionConstTypePtr, GDExtensionTypePtr) callconv(.C) void;
pub const GDExtensionPtrKeyedChecker = ?*const fn (GDExtensionConstVariantPtr, GDExtensionConstVariantPtr) callconv(.C) u32;
pub const GDExtensionPtrUtilityFunction = ?*const fn (GDExtensionTypePtr, ?[*]const GDExtensionConstTypePtr, c_int) callconv(.C) void;
pub const GDExtensionClassConstructor = ?*const fn (...) callconv(.C) GDExtensionObjectPtr;
pub const GDExtensionInstanceBindingCreateCallback = ?*const fn (?*anyopaque, ?*anyopaque) callconv(.C) ?*anyopaque;
pub const GDExtensionInstanceBindingFreeCallback = ?*const fn (?*anyopaque, ?*anyopaque, ?*anyopaque) callconv(.C) void;
pub const GDExtensionInstanceBindingReferenceCallback = ?*const fn (?*anyopaque, ?*anyopaque, GDExtensionBool) callconv(.C) GDExtensionBool;
pub const GDExtensionInstanceBindingCallbacks = extern struct {
create_callback: GDExtensionInstanceBindingCreateCallback = std.mem.zeroes(GDExtensionInstanceBindingCreateCallback),
free_callback: GDExtensionInstanceBindingFreeCallback = std.mem.zeroes(GDExtensionInstanceBindingFreeCallback),
reference_callback: GDExtensionInstanceBindingReferenceCallback = std.mem.zeroes(GDExtensionInstanceBindingReferenceCallback),
};
pub const GDExtensionClassInstancePtr = ?*anyopaque;
pub const GDExtensionClassSet = ?*const fn (GDExtensionClassInstancePtr, GDExtensionConstStringNamePtr, GDExtensionConstVariantPtr) callconv(.C) GDExtensionBool;
pub const GDExtensionClassGet = ?*const fn (GDExtensionClassInstancePtr, GDExtensionConstStringNamePtr, GDExtensionVariantPtr) callconv(.C) GDExtensionBool;
pub const GDExtensionClassGetRID = ?*const fn (GDExtensionClassInstancePtr) callconv(.C) u64;
pub const GDExtensionPropertyInfo = extern struct {
type: GDExtensionVariantType = std.mem.zeroes(GDExtensionVariantType),
name: GDExtensionStringNamePtr = std.mem.zeroes(GDExtensionStringNamePtr),
class_name: GDExtensionStringNamePtr = std.mem.zeroes(GDExtensionStringNamePtr),
hint: u32 = std.mem.zeroes(u32),
hint_string: GDExtensionStringPtr = std.mem.zeroes(GDExtensionStringPtr),
usage: u32 = std.mem.zeroes(u32),
};
pub const GDExtensionMethodInfo = extern struct {
name: GDExtensionStringNamePtr = std.mem.zeroes(GDExtensionStringNamePtr),
return_value: GDExtensionPropertyInfo = std.mem.zeroes(GDExtensionPropertyInfo),
flags: u32 = std.mem.zeroes(u32),
id: i32 = std.mem.zeroes(i32),
argument_count: u32 = std.mem.zeroes(u32),
arguments: ?[*]GDExtensionPropertyInfo = std.mem.zeroes(?[*]GDExtensionPropertyInfo),
default_argument_count: u32 = std.mem.zeroes(u32),
default_arguments: ?[*]GDExtensionVariantPtr = std.mem.zeroes(?[*]GDExtensionVariantPtr),
};
pub const GDExtensionClassGetPropertyList = ?*const fn (GDExtensionClassInstancePtr, ?[*]u32) callconv(.C) ?[*]const GDExtensionPropertyInfo;
pub const GDExtensionClassFreePropertyList = ?*const fn (GDExtensionClassInstancePtr, ?[*]const GDExtensionPropertyInfo) callconv(.C) void;
pub const GDExtensionClassPropertyCanRevert = ?*const fn (GDExtensionClassInstancePtr, GDExtensionConstStringNamePtr) callconv(.C) GDExtensionBool;
pub const GDExtensionClassPropertyGetRevert = ?*const fn (GDExtensionClassInstancePtr, GDExtensionConstStringNamePtr, GDExtensionVariantPtr) callconv(.C) GDExtensionBool;
pub const GDExtensionClassNotification = ?*const fn (GDExtensionClassInstancePtr, i32) callconv(.C) void;
pub const GDExtensionClassToString = ?*const fn (GDExtensionClassInstancePtr, ?[*]GDExtensionBool, GDExtensionStringPtr) callconv(.C) void;
pub const GDExtensionClassReference = ?*const fn (GDExtensionClassInstancePtr) callconv(.C) void;
pub const GDExtensionClassUnreference = ?*const fn (GDExtensionClassInstancePtr) callconv(.C) void;
pub const GDExtensionClassCallVirtual = ?*const fn (GDExtensionClassInstancePtr, ?[*]const GDExtensionConstTypePtr, GDExtensionTypePtr) callconv(.C) void;
pub const GDExtensionClassCreateInstance = ?*const fn (?*anyopaque) callconv(.C) GDExtensionObjectPtr;
pub const GDExtensionClassFreeInstance = ?*const fn (?*anyopaque, GDExtensionClassInstancePtr) callconv(.C) void;
pub const GDExtensionClassGetVirtual = ?*const fn (?*anyopaque, GDExtensionConstStringNamePtr) callconv(.C) GDExtensionClassCallVirtual;
pub const GDExtensionClassCreationInfo = extern struct {
is_virtual: GDExtensionBool = std.mem.zeroes(GDExtensionBool),
is_abstract: GDExtensionBool = std.mem.zeroes(GDExtensionBool),
set_func: GDExtensionClassSet = std.mem.zeroes(GDExtensionClassSet),
get_func: GDExtensionClassGet = std.mem.zeroes(GDExtensionClassGet),
get_property_list_func: GDExtensionClassGetPropertyList = std.mem.zeroes(GDExtensionClassGetPropertyList),
free_property_list_func: GDExtensionClassFreePropertyList = std.mem.zeroes(GDExtensionClassFreePropertyList),
property_can_revert_func: GDExtensionClassPropertyCanRevert = std.mem.zeroes(GDExtensionClassPropertyCanRevert),
property_get_revert_func: GDExtensionClassPropertyGetRevert = std.mem.zeroes(GDExtensionClassPropertyGetRevert),
notification_func: GDExtensionClassNotification = std.mem.zeroes(GDExtensionClassNotification),
to_string_func: GDExtensionClassToString = std.mem.zeroes(GDExtensionClassToString),
reference_func: GDExtensionClassReference = std.mem.zeroes(GDExtensionClassReference),
unreference_func: GDExtensionClassUnreference = std.mem.zeroes(GDExtensionClassUnreference),
create_instance_func: GDExtensionClassCreateInstance = std.mem.zeroes(GDExtensionClassCreateInstance),
free_instance_func: GDExtensionClassFreeInstance = std.mem.zeroes(GDExtensionClassFreeInstance),
get_virtual_func: GDExtensionClassGetVirtual = std.mem.zeroes(GDExtensionClassGetVirtual),
get_rid_func: GDExtensionClassGetRID = std.mem.zeroes(GDExtensionClassGetRID),
class_userdata: ?*anyopaque = std.mem.zeroes(?*anyopaque),
};
pub const GDExtensionClassLibraryPtr = ?*anyopaque;
pub const GDExtensionClassMethodFlags = enum(c_uint) {
GDEXTENSION_METHOD_FLAG_NORMAL = 1,
GDEXTENSION_METHOD_FLAG_EDITOR = 2,
GDEXTENSION_METHOD_FLAG_CONST = 4,
GDEXTENSION_METHOD_FLAG_VIRTUAL = 8,
GDEXTENSION_METHOD_FLAG_VARARG = 16,
GDEXTENSION_METHOD_FLAG_STATIC = 32,
GDEXTENSION_METHOD_FLAGS_DEFAULT = 1,
};
pub const GDExtensionClassMethodArgumentMetadata = enum(c_uint) {
GDEXTENSION_METHOD_ARGUMENT_METADATA_NONE = 0,
GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_INT8 = 1,
GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_INT16 = 2,
GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_INT32 = 3,
GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_INT64 = 4,
GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_UINT8 = 5,
GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_UINT16 = 6,
GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_UINT32 = 7,
GDEXTENSION_METHOD_ARGUMENT_METADATA_INT_IS_UINT64 = 8,
GDEXTENSION_METHOD_ARGUMENT_METADATA_REAL_IS_FLOAT = 9,
GDEXTENSION_METHOD_ARGUMENT_METADATA_REAL_IS_DOUBLE = 10,
};
pub const GDExtensionClassMethodCall = ?*const fn (?*anyopaque, GDExtensionClassInstancePtr, ?[*]const GDExtensionConstVariantPtr, GDExtensionInt, GDExtensionVariantPtr, ?[*]GDExtensionCallError) callconv(.C) void;
pub const GDExtensionClassMethodPtrCall = ?*const fn (?*anyopaque, GDExtensionClassInstancePtr, ?[*]const GDExtensionConstTypePtr, GDExtensionTypePtr) callconv(.C) void;
pub const GDExtensionClassMethodInfo = extern struct {
name: GDExtensionStringNamePtr = std.mem.zeroes(GDExtensionStringNamePtr),
method_userdata: ?*anyopaque = std.mem.zeroes(?*anyopaque),
call_func: GDExtensionClassMethodCall = std.mem.zeroes(GDExtensionClassMethodCall),
ptrcall_func: GDExtensionClassMethodPtrCall = std.mem.zeroes(GDExtensionClassMethodPtrCall),
method_flags: u32 = std.mem.zeroes(u32),
has_return_value: GDExtensionBool = std.mem.zeroes(GDExtensionBool),
return_value_info: ?[*]GDExtensionPropertyInfo = std.mem.zeroes(?[*]GDExtensionPropertyInfo),
return_value_metadata: GDExtensionClassMethodArgumentMetadata = std.mem.zeroes(GDExtensionClassMethodArgumentMetadata),
argument_count: u32 = std.mem.zeroes(u32),
arguments_info: ?[*]GDExtensionPropertyInfo = std.mem.zeroes(?[*]GDExtensionPropertyInfo),
arguments_metadata: ?[*]GDExtensionClassMethodArgumentMetadata = std.mem.zeroes(?[*]GDExtensionClassMethodArgumentMetadata),
default_argument_count: u32 = std.mem.zeroes(u32),
default_arguments: ?[*]GDExtensionVariantPtr = std.mem.zeroes(?[*]GDExtensionVariantPtr),
};
pub const GDExtensionScriptInstanceDataPtr = ?*anyopaque;
pub const GDExtensionScriptInstanceSet = ?*const fn (GDExtensionScriptInstanceDataPtr, GDExtensionConstStringNamePtr, GDExtensionConstVariantPtr) callconv(.C) GDExtensionBool;
pub const GDExtensionScriptInstanceGet = ?*const fn (GDExtensionScriptInstanceDataPtr, GDExtensionConstStringNamePtr, GDExtensionVariantPtr) callconv(.C) GDExtensionBool;
pub const GDExtensionScriptInstanceGetPropertyList = ?*const fn (GDExtensionScriptInstanceDataPtr, ?[*]u32) callconv(.C) ?[*]const GDExtensionPropertyInfo;
pub const GDExtensionScriptInstanceFreePropertyList = ?*const fn (GDExtensionScriptInstanceDataPtr, ?[*]const GDExtensionPropertyInfo) callconv(.C) void;
pub const GDExtensionScriptInstanceGetPropertyType = ?*const fn (GDExtensionScriptInstanceDataPtr, GDExtensionConstStringNamePtr, ?[*]GDExtensionBool) callconv(.C) GDExtensionVariantType;
pub const GDExtensionScriptInstancePropertyCanRevert = ?*const fn (GDExtensionScriptInstanceDataPtr, GDExtensionConstStringNamePtr) callconv(.C) GDExtensionBool;
pub const GDExtensionScriptInstancePropertyGetRevert = ?*const fn (GDExtensionScriptInstanceDataPtr, GDExtensionConstStringNamePtr, GDExtensionVariantPtr) callconv(.C) GDExtensionBool;
pub const GDExtensionScriptInstanceGetOwner = ?*const fn (GDExtensionScriptInstanceDataPtr) callconv(.C) GDExtensionObjectPtr;
pub const GDExtensionScriptInstancePropertyStateAdd = ?*const fn (GDExtensionConstStringNamePtr, GDExtensionConstVariantPtr, ?*anyopaque) callconv(.C) void;
pub const GDExtensionScriptInstanceGetPropertyState = ?*const fn (GDExtensionScriptInstanceDataPtr, GDExtensionScriptInstancePropertyStateAdd, ?*anyopaque) callconv(.C) void;
pub const GDExtensionScriptInstanceGetMethodList = ?*const fn (GDExtensionScriptInstanceDataPtr, ?[*]u32) callconv(.C) ?[*]const GDExtensionMethodInfo;
pub const GDExtensionScriptInstanceFreeMethodList = ?*const fn (GDExtensionScriptInstanceDataPtr, ?[*]const GDExtensionMethodInfo) callconv(.C) void;
pub const GDExtensionScriptInstanceHasMethod = ?*const fn (GDExtensionScriptInstanceDataPtr, GDExtensionConstStringNamePtr) callconv(.C) GDExtensionBool;
pub const GDExtensionScriptInstanceCall = ?*const fn (GDExtensionScriptInstanceDataPtr, GDExtensionConstStringNamePtr, ?[*]const GDExtensionConstVariantPtr, GDExtensionInt, GDExtensionVariantPtr, ?[*]GDExtensionCallError) callconv(.C) void;
pub const GDExtensionScriptInstanceNotification = ?*const fn (GDExtensionScriptInstanceDataPtr, i32) callconv(.C) void;
pub const GDExtensionScriptInstanceToString = ?*const fn (GDExtensionScriptInstanceDataPtr, ?[*]GDExtensionBool, GDExtensionStringPtr) callconv(.C) void;
pub const GDExtensionScriptInstanceRefCountIncremented = ?*const fn (GDExtensionScriptInstanceDataPtr) callconv(.C) void;
pub const GDExtensionScriptInstanceRefCountDecremented = ?*const fn (GDExtensionScriptInstanceDataPtr) callconv(.C) GDExtensionBool;
pub const GDExtensionScriptInstanceGetScript = ?*const fn (GDExtensionScriptInstanceDataPtr) callconv(.C) GDExtensionObjectPtr;
pub const GDExtensionScriptInstanceIsPlaceholder = ?*const fn (GDExtensionScriptInstanceDataPtr) callconv(.C) GDExtensionBool;
pub const GDExtensionScriptLanguagePtr = ?*anyopaque;
pub const GDExtensionScriptInstanceGetLanguage = ?*const fn (GDExtensionScriptInstanceDataPtr) callconv(.C) GDExtensionScriptLanguagePtr;
pub const GDExtensionScriptInstanceFree = ?*const fn (GDExtensionScriptInstanceDataPtr) callconv(.C) void;
pub const GDExtensionScriptInstancePtr = ?*anyopaque;
pub const GDExtensionScriptInstanceInfo = extern struct {
set_func: GDExtensionScriptInstanceSet = std.mem.zeroes(GDExtensionScriptInstanceSet),
get_func: GDExtensionScriptInstanceGet = std.mem.zeroes(GDExtensionScriptInstanceGet),
get_property_list_func: GDExtensionScriptInstanceGetPropertyList = std.mem.zeroes(GDExtensionScriptInstanceGetPropertyList),
free_property_list_func: GDExtensionScriptInstanceFreePropertyList = std.mem.zeroes(GDExtensionScriptInstanceFreePropertyList),
property_can_revert_func: GDExtensionScriptInstancePropertyCanRevert = std.mem.zeroes(GDExtensionScriptInstancePropertyCanRevert),
property_get_revert_func: GDExtensionScriptInstancePropertyGetRevert = std.mem.zeroes(GDExtensionScriptInstancePropertyGetRevert),
get_owner_func: GDExtensionScriptInstanceGetOwner = std.mem.zeroes(GDExtensionScriptInstanceGetOwner),
get_property_state_func: GDExtensionScriptInstanceGetPropertyState = std.mem.zeroes(GDExtensionScriptInstanceGetPropertyState),
get_method_list_func: GDExtensionScriptInstanceGetMethodList = std.mem.zeroes(GDExtensionScriptInstanceGetMethodList),
free_method_list_func: GDExtensionScriptInstanceFreeMethodList = std.mem.zeroes(GDExtensionScriptInstanceFreeMethodList),
get_property_type_func: GDExtensionScriptInstanceGetPropertyType = std.mem.zeroes(GDExtensionScriptInstanceGetPropertyType),
has_method_func: GDExtensionScriptInstanceHasMethod = std.mem.zeroes(GDExtensionScriptInstanceHasMethod),
call_func: GDExtensionScriptInstanceCall = std.mem.zeroes(GDExtensionScriptInstanceCall),
notification_func: GDExtensionScriptInstanceNotification = std.mem.zeroes(GDExtensionScriptInstanceNotification),
to_string_func: GDExtensionScriptInstanceToString = std.mem.zeroes(GDExtensionScriptInstanceToString),
refcount_incremented_func: GDExtensionScriptInstanceRefCountIncremented = std.mem.zeroes(GDExtensionScriptInstanceRefCountIncremented),
refcount_decremented_func: GDExtensionScriptInstanceRefCountDecremented = std.mem.zeroes(GDExtensionScriptInstanceRefCountDecremented),
get_script_func: GDExtensionScriptInstanceGetScript = std.mem.zeroes(GDExtensionScriptInstanceGetScript),
is_placeholder_func: GDExtensionScriptInstanceIsPlaceholder = std.mem.zeroes(GDExtensionScriptInstanceIsPlaceholder),
set_fallback_func: GDExtensionScriptInstanceSet = std.mem.zeroes(GDExtensionScriptInstanceSet),
get_fallback_func: GDExtensionScriptInstanceGet = std.mem.zeroes(GDExtensionScriptInstanceGet),
get_language_func: GDExtensionScriptInstanceGetLanguage = std.mem.zeroes(GDExtensionScriptInstanceGetLanguage),
free_func: GDExtensionScriptInstanceFree = std.mem.zeroes(GDExtensionScriptInstanceFree),
};
pub const GDExtensionInterface = extern struct {
version_major: u32 = std.mem.zeroes(u32),
version_minor: u32 = std.mem.zeroes(u32),
version_patch: u32 = std.mem.zeroes(u32),
version_string: [*:0]const u8 = std.mem.zeroes([*:0]const u8),
mem_alloc: ?*const fn (usize) callconv(.C) ?*anyopaque = std.mem.zeroes(?*const fn (usize) callconv(.C) ?*anyopaque),
mem_realloc: ?*const fn (?*anyopaque, usize) callconv(.C) ?*anyopaque = std.mem.zeroes(?*const fn (?*anyopaque, usize) callconv(.C) ?*anyopaque),
mem_free: ?*const fn (?*anyopaque) callconv(.C) void = std.mem.zeroes(?*const fn (?*anyopaque) callconv(.C) void),
print_error: ?*const fn ([*:0]const u8, [*:0]const u8, [*:0]const u8, i32, GDExtensionBool) callconv(.C) void = std.mem.zeroes(?*const fn ([*:0]const u8, [*:0]const u8, [*:0]const u8, i32, GDExtensionBool) callconv(.C) void),
print_error_with_message: ?*const fn ([*:0]const u8, [*:0]const u8, [*:0]const u8, [*:0]const u8, i32, GDExtensionBool) callconv(.C) void = std.mem.zeroes(?*const fn ([*:0]const u8, [*:0]const u8, [*:0]const u8, [*:0]const u8, i32, GDExtensionBool) callconv(.C) void),
print_warning: ?*const fn ([*:0]const u8, [*:0]const u8, [*:0]const u8, i32, GDExtensionBool) callconv(.C) void = std.mem.zeroes(?*const fn ([*:0]const u8, [*:0]const u8, [*:0]const u8, i32, GDExtensionBool) callconv(.C) void),
print_warning_with_message: ?*const fn ([*:0]const u8, [*:0]const u8, [*:0]const u8, [*:0]const u8, i32, GDExtensionBool) callconv(.C) void = std.mem.zeroes(?*const fn ([*:0]const u8, [*:0]const u8, [*:0]const u8, [*:0]const u8, i32, GDExtensionBool) callconv(.C) void),
print_script_error: ?*const fn ([*:0]const u8, [*:0]const u8, [*:0]const u8, i32, GDExtensionBool) callconv(.C) void = std.mem.zeroes(?*const fn ([*:0]const u8, [*:0]const u8, [*:0]const u8, i32, GDExtensionBool) callconv(.C) void),
print_script_error_with_message: ?*const fn ([*:0]const u8, [*:0]const u8, [*:0]const u8, [*:0]const u8, i32, GDExtensionBool) callconv(.C) void = std.mem.zeroes(?*const fn ([*:0]const u8, [*:0]const u8, [*:0]const u8, [*:0]const u8, i32, GDExtensionBool) callconv(.C) void),
get_native_struct_size: ?*const fn (GDExtensionConstStringNamePtr) callconv(.C) u64 = std.mem.zeroes(?*const fn (GDExtensionConstStringNamePtr) callconv(.C) u64),
variant_new_copy: ?*const fn (GDExtensionVariantPtr, GDExtensionConstVariantPtr) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionVariantPtr, GDExtensionConstVariantPtr) callconv(.C) void),
variant_new_nil: ?*const fn (GDExtensionVariantPtr) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionVariantPtr) callconv(.C) void),
variant_destroy: ?*const fn (GDExtensionVariantPtr) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionVariantPtr) callconv(.C) void),
variant_call: ?*const fn (GDExtensionVariantPtr, GDExtensionConstStringNamePtr, ?[*]const GDExtensionConstVariantPtr, GDExtensionInt, GDExtensionVariantPtr, ?[*]GDExtensionCallError) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionVariantPtr, GDExtensionConstStringNamePtr, ?[*]const GDExtensionConstVariantPtr, GDExtensionInt, GDExtensionVariantPtr, ?[*]GDExtensionCallError) callconv(.C) void),
variant_call_static: ?*const fn (GDExtensionVariantType, GDExtensionConstStringNamePtr, ?[*]const GDExtensionConstVariantPtr, GDExtensionInt, GDExtensionVariantPtr, ?[*]GDExtensionCallError) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionVariantType, GDExtensionConstStringNamePtr, ?[*]const GDExtensionConstVariantPtr, GDExtensionInt, GDExtensionVariantPtr, ?[*]GDExtensionCallError) callconv(.C) void),
variant_evaluate: ?*const fn (GDExtensionVariantOperator, GDExtensionConstVariantPtr, GDExtensionConstVariantPtr, GDExtensionVariantPtr, ?[*]GDExtensionBool) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionVariantOperator, GDExtensionConstVariantPtr, GDExtensionConstVariantPtr, GDExtensionVariantPtr, ?[*]GDExtensionBool) callconv(.C) void),
variant_set: ?*const fn (GDExtensionVariantPtr, GDExtensionConstVariantPtr, GDExtensionConstVariantPtr, ?[*]GDExtensionBool) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionVariantPtr, GDExtensionConstVariantPtr, GDExtensionConstVariantPtr, ?[*]GDExtensionBool) callconv(.C) void),
variant_set_named: ?*const fn (GDExtensionVariantPtr, GDExtensionConstStringNamePtr, GDExtensionConstVariantPtr, ?[*]GDExtensionBool) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionVariantPtr, GDExtensionConstStringNamePtr, GDExtensionConstVariantPtr, ?[*]GDExtensionBool) callconv(.C) void),
variant_set_keyed: ?*const fn (GDExtensionVariantPtr, GDExtensionConstVariantPtr, GDExtensionConstVariantPtr, ?[*]GDExtensionBool) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionVariantPtr, GDExtensionConstVariantPtr, GDExtensionConstVariantPtr, ?[*]GDExtensionBool) callconv(.C) void),
variant_set_indexed: ?*const fn (GDExtensionVariantPtr, GDExtensionInt, GDExtensionConstVariantPtr, ?[*]GDExtensionBool, ?[*]GDExtensionBool) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionVariantPtr, GDExtensionInt, GDExtensionConstVariantPtr, ?[*]GDExtensionBool, ?[*]GDExtensionBool) callconv(.C) void),
variant_get: ?*const fn (GDExtensionConstVariantPtr, GDExtensionConstVariantPtr, GDExtensionVariantPtr, ?[*]GDExtensionBool) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionConstVariantPtr, GDExtensionConstVariantPtr, GDExtensionVariantPtr, ?[*]GDExtensionBool) callconv(.C) void),
variant_get_named: ?*const fn (GDExtensionConstVariantPtr, GDExtensionConstStringNamePtr, GDExtensionVariantPtr, ?[*]GDExtensionBool) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionConstVariantPtr, GDExtensionConstStringNamePtr, GDExtensionVariantPtr, ?[*]GDExtensionBool) callconv(.C) void),
variant_get_keyed: ?*const fn (GDExtensionConstVariantPtr, GDExtensionConstVariantPtr, GDExtensionVariantPtr, ?[*]GDExtensionBool) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionConstVariantPtr, GDExtensionConstVariantPtr, GDExtensionVariantPtr, ?[*]GDExtensionBool) callconv(.C) void),
variant_get_indexed: ?*const fn (GDExtensionConstVariantPtr, GDExtensionInt, GDExtensionVariantPtr, ?[*]GDExtensionBool, ?[*]GDExtensionBool) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionConstVariantPtr, GDExtensionInt, GDExtensionVariantPtr, ?[*]GDExtensionBool, ?[*]GDExtensionBool) callconv(.C) void),
variant_iter_init: ?*const fn (GDExtensionConstVariantPtr, GDExtensionVariantPtr, ?[*]GDExtensionBool) callconv(.C) GDExtensionBool = std.mem.zeroes(?*const fn (GDExtensionConstVariantPtr, GDExtensionVariantPtr, ?[*]GDExtensionBool) callconv(.C) GDExtensionBool),
variant_iter_next: ?*const fn (GDExtensionConstVariantPtr, GDExtensionVariantPtr, ?[*]GDExtensionBool) callconv(.C) GDExtensionBool = std.mem.zeroes(?*const fn (GDExtensionConstVariantPtr, GDExtensionVariantPtr, ?[*]GDExtensionBool) callconv(.C) GDExtensionBool),
variant_iter_get: ?*const fn (GDExtensionConstVariantPtr, GDExtensionVariantPtr, GDExtensionVariantPtr, ?[*]GDExtensionBool) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionConstVariantPtr, GDExtensionVariantPtr, GDExtensionVariantPtr, ?[*]GDExtensionBool) callconv(.C) void),
variant_hash: ?*const fn (GDExtensionConstVariantPtr) callconv(.C) GDExtensionInt = std.mem.zeroes(?*const fn (GDExtensionConstVariantPtr) callconv(.C) GDExtensionInt),
variant_recursive_hash: ?*const fn (GDExtensionConstVariantPtr, GDExtensionInt) callconv(.C) GDExtensionInt = std.mem.zeroes(?*const fn (GDExtensionConstVariantPtr, GDExtensionInt) callconv(.C) GDExtensionInt),
variant_hash_compare: ?*const fn (GDExtensionConstVariantPtr, GDExtensionConstVariantPtr) callconv(.C) GDExtensionBool = std.mem.zeroes(?*const fn (GDExtensionConstVariantPtr, GDExtensionConstVariantPtr) callconv(.C) GDExtensionBool),
variant_booleanize: ?*const fn (GDExtensionConstVariantPtr) callconv(.C) GDExtensionBool = std.mem.zeroes(?*const fn (GDExtensionConstVariantPtr) callconv(.C) GDExtensionBool),
variant_duplicate: ?*const fn (GDExtensionConstVariantPtr, GDExtensionVariantPtr, GDExtensionBool) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionConstVariantPtr, GDExtensionVariantPtr, GDExtensionBool) callconv(.C) void),
variant_stringify: ?*const fn (GDExtensionConstVariantPtr, GDExtensionStringPtr) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionConstVariantPtr, GDExtensionStringPtr) callconv(.C) void),
variant_get_type: ?*const fn (GDExtensionConstVariantPtr) callconv(.C) GDExtensionVariantType = std.mem.zeroes(?*const fn (GDExtensionConstVariantPtr) callconv(.C) GDExtensionVariantType),
variant_has_method: ?*const fn (GDExtensionConstVariantPtr, GDExtensionConstStringNamePtr) callconv(.C) GDExtensionBool = std.mem.zeroes(?*const fn (GDExtensionConstVariantPtr, GDExtensionConstStringNamePtr) callconv(.C) GDExtensionBool),
variant_has_member: ?*const fn (GDExtensionVariantType, GDExtensionConstStringNamePtr) callconv(.C) GDExtensionBool = std.mem.zeroes(?*const fn (GDExtensionVariantType, GDExtensionConstStringNamePtr) callconv(.C) GDExtensionBool),
variant_has_key: ?*const fn (GDExtensionConstVariantPtr, GDExtensionConstVariantPtr, ?[*]GDExtensionBool) callconv(.C) GDExtensionBool = std.mem.zeroes(?*const fn (GDExtensionConstVariantPtr, GDExtensionConstVariantPtr, ?[*]GDExtensionBool) callconv(.C) GDExtensionBool),
variant_get_type_name: ?*const fn (GDExtensionVariantType, GDExtensionStringPtr) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionVariantType, GDExtensionStringPtr) callconv(.C) void),
variant_can_convert: ?*const fn (GDExtensionVariantType, GDExtensionVariantType) callconv(.C) GDExtensionBool = std.mem.zeroes(?*const fn (GDExtensionVariantType, GDExtensionVariantType) callconv(.C) GDExtensionBool),
variant_can_convert_strict: ?*const fn (GDExtensionVariantType, GDExtensionVariantType) callconv(.C) GDExtensionBool = std.mem.zeroes(?*const fn (GDExtensionVariantType, GDExtensionVariantType) callconv(.C) GDExtensionBool),
get_variant_from_type_constructor: ?*const fn (GDExtensionVariantType) callconv(.C) GDExtensionVariantFromTypeConstructorFunc = std.mem.zeroes(?*const fn (GDExtensionVariantType) callconv(.C) GDExtensionVariantFromTypeConstructorFunc),
get_variant_to_type_constructor: ?*const fn (GDExtensionVariantType) callconv(.C) GDExtensionTypeFromVariantConstructorFunc = std.mem.zeroes(?*const fn (GDExtensionVariantType) callconv(.C) GDExtensionTypeFromVariantConstructorFunc),
variant_get_ptr_operator_evaluator: ?*const fn (GDExtensionVariantOperator, GDExtensionVariantType, GDExtensionVariantType) callconv(.C) GDExtensionPtrOperatorEvaluator = std.mem.zeroes(?*const fn (GDExtensionVariantOperator, GDExtensionVariantType, GDExtensionVariantType) callconv(.C) GDExtensionPtrOperatorEvaluator),
variant_get_ptr_builtin_method: ?*const fn (GDExtensionVariantType, GDExtensionConstStringNamePtr, GDExtensionInt) callconv(.C) GDExtensionPtrBuiltInMethod = std.mem.zeroes(?*const fn (GDExtensionVariantType, GDExtensionConstStringNamePtr, GDExtensionInt) callconv(.C) GDExtensionPtrBuiltInMethod),
variant_get_ptr_constructor: ?*const fn (GDExtensionVariantType, i32) callconv(.C) GDExtensionPtrConstructor = std.mem.zeroes(?*const fn (GDExtensionVariantType, i32) callconv(.C) GDExtensionPtrConstructor),
variant_get_ptr_destructor: ?*const fn (GDExtensionVariantType) callconv(.C) GDExtensionPtrDestructor = std.mem.zeroes(?*const fn (GDExtensionVariantType) callconv(.C) GDExtensionPtrDestructor),
variant_construct: ?*const fn (GDExtensionVariantType, GDExtensionVariantPtr, ?[*]const GDExtensionConstVariantPtr, i32, ?[*]GDExtensionCallError) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionVariantType, GDExtensionVariantPtr, ?[*]const GDExtensionConstVariantPtr, i32, ?[*]GDExtensionCallError) callconv(.C) void),
variant_get_ptr_setter: ?*const fn (GDExtensionVariantType, GDExtensionConstStringNamePtr) callconv(.C) GDExtensionPtrSetter = std.mem.zeroes(?*const fn (GDExtensionVariantType, GDExtensionConstStringNamePtr) callconv(.C) GDExtensionPtrSetter),
variant_get_ptr_getter: ?*const fn (GDExtensionVariantType, GDExtensionConstStringNamePtr) callconv(.C) GDExtensionPtrGetter = std.mem.zeroes(?*const fn (GDExtensionVariantType, GDExtensionConstStringNamePtr) callconv(.C) GDExtensionPtrGetter),
variant_get_ptr_indexed_setter: ?*const fn (GDExtensionVariantType) callconv(.C) GDExtensionPtrIndexedSetter = std.mem.zeroes(?*const fn (GDExtensionVariantType) callconv(.C) GDExtensionPtrIndexedSetter),
variant_get_ptr_indexed_getter: ?*const fn (GDExtensionVariantType) callconv(.C) GDExtensionPtrIndexedGetter = std.mem.zeroes(?*const fn (GDExtensionVariantType) callconv(.C) GDExtensionPtrIndexedGetter),
variant_get_ptr_keyed_setter: ?*const fn (GDExtensionVariantType) callconv(.C) GDExtensionPtrKeyedSetter = std.mem.zeroes(?*const fn (GDExtensionVariantType) callconv(.C) GDExtensionPtrKeyedSetter),
variant_get_ptr_keyed_getter: ?*const fn (GDExtensionVariantType) callconv(.C) GDExtensionPtrKeyedGetter = std.mem.zeroes(?*const fn (GDExtensionVariantType) callconv(.C) GDExtensionPtrKeyedGetter),
variant_get_ptr_keyed_checker: ?*const fn (GDExtensionVariantType) callconv(.C) GDExtensionPtrKeyedChecker = std.mem.zeroes(?*const fn (GDExtensionVariantType) callconv(.C) GDExtensionPtrKeyedChecker),
variant_get_constant_value: ?*const fn (GDExtensionVariantType, GDExtensionConstStringNamePtr, GDExtensionVariantPtr) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionVariantType, GDExtensionConstStringNamePtr, GDExtensionVariantPtr) callconv(.C) void),
variant_get_ptr_utility_function: ?*const fn (GDExtensionConstStringNamePtr, GDExtensionInt) callconv(.C) GDExtensionPtrUtilityFunction = std.mem.zeroes(?*const fn (GDExtensionConstStringNamePtr, GDExtensionInt) callconv(.C) GDExtensionPtrUtilityFunction),
string_new_with_latin1_chars: ?*const fn (GDExtensionStringPtr, [*:0]const u8) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionStringPtr, [*:0]const u8) callconv(.C) void),
string_new_with_utf8_chars: ?*const fn (GDExtensionStringPtr, [*:0]const u8) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionStringPtr, [*:0]const u8) callconv(.C) void),
string_new_with_utf16_chars: ?*const fn (GDExtensionStringPtr, ?[*]const u16) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionStringPtr, ?[*]const u16) callconv(.C) void),
string_new_with_utf32_chars: ?*const fn (GDExtensionStringPtr, ?[*]const u32) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionStringPtr, ?[*]const u32) callconv(.C) void),
string_new_with_wide_chars: ?*const fn (GDExtensionStringPtr, ?[*]const c_int) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionStringPtr, ?[*]const c_int) callconv(.C) void),
string_new_with_latin1_chars_and_len: ?*const fn (GDExtensionStringPtr, [*:0]const u8, GDExtensionInt) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionStringPtr, [*:0]const u8, GDExtensionInt) callconv(.C) void),
string_new_with_utf8_chars_and_len: ?*const fn (GDExtensionStringPtr, [*:0]const u8, GDExtensionInt) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionStringPtr, [*:0]const u8, GDExtensionInt) callconv(.C) void),
string_new_with_utf16_chars_and_len: ?*const fn (GDExtensionStringPtr, ?[*]const u16, GDExtensionInt) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionStringPtr, ?[*]const u16, GDExtensionInt) callconv(.C) void),
string_new_with_utf32_chars_and_len: ?*const fn (GDExtensionStringPtr, ?[*]const u32, GDExtensionInt) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionStringPtr, ?[*]const u32, GDExtensionInt) callconv(.C) void),
string_new_with_wide_chars_and_len: ?*const fn (GDExtensionStringPtr, ?[*]const c_int, GDExtensionInt) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionStringPtr, ?[*]const c_int, GDExtensionInt) callconv(.C) void),
string_to_latin1_chars: ?*const fn (GDExtensionConstStringPtr, [*:0]u8, GDExtensionInt) callconv(.C) GDExtensionInt = std.mem.zeroes(?*const fn (GDExtensionConstStringPtr, [*:0]u8, GDExtensionInt) callconv(.C) GDExtensionInt),
string_to_utf8_chars: ?*const fn (GDExtensionConstStringPtr, [*:0]u8, GDExtensionInt) callconv(.C) GDExtensionInt = std.mem.zeroes(?*const fn (GDExtensionConstStringPtr, [*:0]u8, GDExtensionInt) callconv(.C) GDExtensionInt),
string_to_utf16_chars: ?*const fn (GDExtensionConstStringPtr, ?[*]u16, GDExtensionInt) callconv(.C) GDExtensionInt = std.mem.zeroes(?*const fn (GDExtensionConstStringPtr, ?[*]u16, GDExtensionInt) callconv(.C) GDExtensionInt),
string_to_utf32_chars: ?*const fn (GDExtensionConstStringPtr, ?[*]u32, GDExtensionInt) callconv(.C) GDExtensionInt = std.mem.zeroes(?*const fn (GDExtensionConstStringPtr, ?[*]u32, GDExtensionInt) callconv(.C) GDExtensionInt),
string_to_wide_chars: ?*const fn (GDExtensionConstStringPtr, ?[*]c_int, GDExtensionInt) callconv(.C) GDExtensionInt = std.mem.zeroes(?*const fn (GDExtensionConstStringPtr, ?[*]c_int, GDExtensionInt) callconv(.C) GDExtensionInt),
string_operator_index: ?*const fn (GDExtensionStringPtr, GDExtensionInt) callconv(.C) ?[*]u32 = std.mem.zeroes(?*const fn (GDExtensionStringPtr, GDExtensionInt) callconv(.C) ?[*]u32),
string_operator_index_const: ?*const fn (GDExtensionConstStringPtr, GDExtensionInt) callconv(.C) ?[*]const u32 = std.mem.zeroes(?*const fn (GDExtensionConstStringPtr, GDExtensionInt) callconv(.C) ?[*]const u32),
string_operator_plus_eq_string: ?*const fn (GDExtensionStringPtr, GDExtensionConstStringPtr) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionStringPtr, GDExtensionConstStringPtr) callconv(.C) void),
string_operator_plus_eq_char: ?*const fn (GDExtensionStringPtr, u32) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionStringPtr, u32) callconv(.C) void),
string_operator_plus_eq_cstr: ?*const fn (GDExtensionStringPtr, [*:0]const u8) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionStringPtr, [*:0]const u8) callconv(.C) void),
string_operator_plus_eq_wcstr: ?*const fn (GDExtensionStringPtr, ?[*]const c_int) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionStringPtr, ?[*]const c_int) callconv(.C) void),
string_operator_plus_eq_c32str: ?*const fn (GDExtensionStringPtr, ?[*]const u32) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionStringPtr, ?[*]const u32) callconv(.C) void),
xml_parser_open_buffer: ?*const fn (GDExtensionObjectPtr, [*:0]const u8, usize) callconv(.C) GDExtensionInt = std.mem.zeroes(?*const fn (GDExtensionObjectPtr, [*:0]const u8, usize) callconv(.C) GDExtensionInt),
file_access_store_buffer: ?*const fn (GDExtensionObjectPtr, [*:0]const u8, u64) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionObjectPtr, [*:0]const u8, u64) callconv(.C) void),
file_access_get_buffer: ?*const fn (GDExtensionConstObjectPtr, [*:0]u8, u64) callconv(.C) u64 = std.mem.zeroes(?*const fn (GDExtensionConstObjectPtr, [*:0]u8, u64) callconv(.C) u64),
worker_thread_pool_add_native_group_task: ?*const fn (GDExtensionObjectPtr, ?*const fn (?*anyopaque, u32) callconv(.C) void, ?*anyopaque, c_int, c_int, GDExtensionBool, GDExtensionConstStringPtr) callconv(.C) i64 = std.mem.zeroes(?*const fn (GDExtensionObjectPtr, ?*const fn (?*anyopaque, u32) callconv(.C) void, ?*anyopaque, c_int, c_int, GDExtensionBool, GDExtensionConstStringPtr) callconv(.C) i64),
worker_thread_pool_add_native_task: ?*const fn (GDExtensionObjectPtr, ?*const fn (?*anyopaque) callconv(.C) void, ?*anyopaque, GDExtensionBool, GDExtensionConstStringPtr) callconv(.C) i64 = std.mem.zeroes(?*const fn (GDExtensionObjectPtr, ?*const fn (?*anyopaque) callconv(.C) void, ?*anyopaque, GDExtensionBool, GDExtensionConstStringPtr) callconv(.C) i64),
packed_byte_array_operator_index: ?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) [*:0]u8 = std.mem.zeroes(?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) [*:0]u8),
packed_byte_array_operator_index_const: ?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) [*:0]const u8 = std.mem.zeroes(?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) [*:0]const u8),
packed_color_array_operator_index: ?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) GDExtensionTypePtr = std.mem.zeroes(?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) GDExtensionTypePtr),
packed_color_array_operator_index_const: ?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) GDExtensionTypePtr = std.mem.zeroes(?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) GDExtensionTypePtr),
packed_float32_array_operator_index: ?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) ?[*]f32 = std.mem.zeroes(?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) ?[*]f32),
packed_float32_array_operator_index_const: ?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) ?[*]const f32 = std.mem.zeroes(?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) ?[*]const f32),
packed_float64_array_operator_index: ?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) ?[*]f64 = std.mem.zeroes(?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) ?[*]f64),
packed_float64_array_operator_index_const: ?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) ?[*]const f64 = std.mem.zeroes(?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) ?[*]const f64),
packed_int32_array_operator_index: ?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) ?[*]i32 = std.mem.zeroes(?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) ?[*]i32),
packed_int32_array_operator_index_const: ?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) ?[*]const i32 = std.mem.zeroes(?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) ?[*]const i32),
packed_int64_array_operator_index: ?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) ?[*]i64 = std.mem.zeroes(?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) ?[*]i64),
packed_int64_array_operator_index_const: ?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) ?[*]const i64 = std.mem.zeroes(?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) ?[*]const i64),
packed_string_array_operator_index: ?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) GDExtensionStringPtr = std.mem.zeroes(?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) GDExtensionStringPtr),
packed_string_array_operator_index_const: ?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) GDExtensionStringPtr = std.mem.zeroes(?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) GDExtensionStringPtr),
packed_vector2_array_operator_index: ?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) GDExtensionTypePtr = std.mem.zeroes(?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) GDExtensionTypePtr),
packed_vector2_array_operator_index_const: ?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) GDExtensionTypePtr = std.mem.zeroes(?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) GDExtensionTypePtr),
packed_vector3_array_operator_index: ?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) GDExtensionTypePtr = std.mem.zeroes(?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) GDExtensionTypePtr),
packed_vector3_array_operator_index_const: ?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) GDExtensionTypePtr = std.mem.zeroes(?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) GDExtensionTypePtr),
array_operator_index: ?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) GDExtensionVariantPtr = std.mem.zeroes(?*const fn (GDExtensionTypePtr, GDExtensionInt) callconv(.C) GDExtensionVariantPtr),
array_operator_index_const: ?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) GDExtensionVariantPtr = std.mem.zeroes(?*const fn (GDExtensionConstTypePtr, GDExtensionInt) callconv(.C) GDExtensionVariantPtr),
array_ref: ?*const fn (GDExtensionTypePtr, GDExtensionConstTypePtr) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionTypePtr, GDExtensionConstTypePtr) callconv(.C) void),
array_set_typed: ?*const fn (GDExtensionTypePtr, GDExtensionVariantType, GDExtensionConstStringNamePtr, GDExtensionConstVariantPtr) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionTypePtr, GDExtensionVariantType, GDExtensionConstStringNamePtr, GDExtensionConstVariantPtr) callconv(.C) void),
dictionary_operator_index: ?*const fn (GDExtensionTypePtr, GDExtensionConstVariantPtr) callconv(.C) GDExtensionVariantPtr = std.mem.zeroes(?*const fn (GDExtensionTypePtr, GDExtensionConstVariantPtr) callconv(.C) GDExtensionVariantPtr),
dictionary_operator_index_const: ?*const fn (GDExtensionConstTypePtr, GDExtensionConstVariantPtr) callconv(.C) GDExtensionVariantPtr = std.mem.zeroes(?*const fn (GDExtensionConstTypePtr, GDExtensionConstVariantPtr) callconv(.C) GDExtensionVariantPtr),
object_method_bind_call: ?*const fn (GDExtensionMethodBindPtr, GDExtensionObjectPtr, ?[*]const GDExtensionConstVariantPtr, GDExtensionInt, GDExtensionVariantPtr, ?[*]GDExtensionCallError) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionMethodBindPtr, GDExtensionObjectPtr, ?[*]const GDExtensionConstVariantPtr, GDExtensionInt, GDExtensionVariantPtr, ?[*]GDExtensionCallError) callconv(.C) void),
object_method_bind_ptrcall: ?*const fn (GDExtensionMethodBindPtr, GDExtensionObjectPtr, ?[*]const GDExtensionConstTypePtr, GDExtensionTypePtr) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionMethodBindPtr, GDExtensionObjectPtr, ?[*]const GDExtensionConstTypePtr, GDExtensionTypePtr) callconv(.C) void),
object_destroy: ?*const fn (GDExtensionObjectPtr) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionObjectPtr) callconv(.C) void),
global_get_singleton: ?*const fn (GDExtensionConstStringNamePtr) callconv(.C) GDExtensionObjectPtr = std.mem.zeroes(?*const fn (GDExtensionConstStringNamePtr) callconv(.C) GDExtensionObjectPtr),
object_get_instance_binding: ?*const fn (GDExtensionObjectPtr, ?*anyopaque, ?[*]const GDExtensionInstanceBindingCallbacks) callconv(.C) ?*anyopaque = std.mem.zeroes(?*const fn (GDExtensionObjectPtr, ?*anyopaque, ?[*]const GDExtensionInstanceBindingCallbacks) callconv(.C) ?*anyopaque),
object_set_instance_binding: ?*const fn (GDExtensionObjectPtr, ?*anyopaque, ?*anyopaque, ?[*]const GDExtensionInstanceBindingCallbacks) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionObjectPtr, ?*anyopaque, ?*anyopaque, ?[*]const GDExtensionInstanceBindingCallbacks) callconv(.C) void),
object_set_instance: ?*const fn (GDExtensionObjectPtr, GDExtensionConstStringNamePtr, GDExtensionClassInstancePtr) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionObjectPtr, GDExtensionConstStringNamePtr, GDExtensionClassInstancePtr) callconv(.C) void),
object_cast_to: ?*const fn (GDExtensionConstObjectPtr, ?*anyopaque) callconv(.C) GDExtensionObjectPtr = std.mem.zeroes(?*const fn (GDExtensionConstObjectPtr, ?*anyopaque) callconv(.C) GDExtensionObjectPtr),
object_get_instance_from_id: ?*const fn (GDObjectInstanceID) callconv(.C) GDExtensionObjectPtr = std.mem.zeroes(?*const fn (GDObjectInstanceID) callconv(.C) GDExtensionObjectPtr),
object_get_instance_id: ?*const fn (GDExtensionConstObjectPtr) callconv(.C) GDObjectInstanceID = std.mem.zeroes(?*const fn (GDExtensionConstObjectPtr) callconv(.C) GDObjectInstanceID),
ref_get_object: ?*const fn (GDExtensionConstRefPtr) callconv(.C) GDExtensionObjectPtr = std.mem.zeroes(?*const fn (GDExtensionConstRefPtr) callconv(.C) GDExtensionObjectPtr),
ref_set_object: ?*const fn (GDExtensionRefPtr, GDExtensionObjectPtr) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionRefPtr, GDExtensionObjectPtr) callconv(.C) void),
script_instance_create: ?*const fn (?[*]const GDExtensionScriptInstanceInfo, GDExtensionScriptInstanceDataPtr) callconv(.C) GDExtensionScriptInstancePtr = std.mem.zeroes(?*const fn (?[*]const GDExtensionScriptInstanceInfo, GDExtensionScriptInstanceDataPtr) callconv(.C) GDExtensionScriptInstancePtr),
classdb_construct_object: ?*const fn (GDExtensionConstStringNamePtr) callconv(.C) GDExtensionObjectPtr = std.mem.zeroes(?*const fn (GDExtensionConstStringNamePtr) callconv(.C) GDExtensionObjectPtr),
classdb_get_method_bind: ?*const fn (GDExtensionConstStringNamePtr, GDExtensionConstStringNamePtr, GDExtensionInt) callconv(.C) GDExtensionMethodBindPtr = std.mem.zeroes(?*const fn (GDExtensionConstStringNamePtr, GDExtensionConstStringNamePtr, GDExtensionInt) callconv(.C) GDExtensionMethodBindPtr),
classdb_get_class_tag: ?*const fn (GDExtensionConstStringNamePtr) callconv(.C) ?*anyopaque = std.mem.zeroes(?*const fn (GDExtensionConstStringNamePtr) callconv(.C) ?*anyopaque),
classdb_register_extension_class: ?*const fn (GDExtensionClassLibraryPtr, GDExtensionConstStringNamePtr, GDExtensionConstStringNamePtr, ?[*]const GDExtensionClassCreationInfo) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionClassLibraryPtr, GDExtensionConstStringNamePtr, GDExtensionConstStringNamePtr, ?[*]const GDExtensionClassCreationInfo) callconv(.C) void),
classdb_register_extension_class_method: ?*const fn (GDExtensionClassLibraryPtr, GDExtensionConstStringNamePtr, ?[*]const GDExtensionClassMethodInfo) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionClassLibraryPtr, GDExtensionConstStringNamePtr, ?[*]const GDExtensionClassMethodInfo) callconv(.C) void),
classdb_register_extension_class_integer_constant: ?*const fn (GDExtensionClassLibraryPtr, GDExtensionConstStringNamePtr, GDExtensionConstStringNamePtr, GDExtensionConstStringNamePtr, GDExtensionInt, GDExtensionBool) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionClassLibraryPtr, GDExtensionConstStringNamePtr, GDExtensionConstStringNamePtr, GDExtensionConstStringNamePtr, GDExtensionInt, GDExtensionBool) callconv(.C) void),
classdb_register_extension_class_property: ?*const fn (GDExtensionClassLibraryPtr, GDExtensionConstStringNamePtr, ?[*]const GDExtensionPropertyInfo, GDExtensionConstStringNamePtr, GDExtensionConstStringNamePtr) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionClassLibraryPtr, GDExtensionConstStringNamePtr, ?[*]const GDExtensionPropertyInfo, GDExtensionConstStringNamePtr, GDExtensionConstStringNamePtr) callconv(.C) void),
classdb_register_extension_class_property_group: ?*const fn (GDExtensionClassLibraryPtr, GDExtensionConstStringNamePtr, GDExtensionConstStringPtr, GDExtensionConstStringPtr) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionClassLibraryPtr, GDExtensionConstStringNamePtr, GDExtensionConstStringPtr, GDExtensionConstStringPtr) callconv(.C) void),
classdb_register_extension_class_property_subgroup: ?*const fn (GDExtensionClassLibraryPtr, GDExtensionConstStringNamePtr, GDExtensionConstStringPtr, GDExtensionConstStringPtr) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionClassLibraryPtr, GDExtensionConstStringNamePtr, GDExtensionConstStringPtr, GDExtensionConstStringPtr) callconv(.C) void),
classdb_register_extension_class_signal: ?*const fn (GDExtensionClassLibraryPtr, GDExtensionConstStringNamePtr, GDExtensionConstStringNamePtr, ?[*]const GDExtensionPropertyInfo, GDExtensionInt) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionClassLibraryPtr, GDExtensionConstStringNamePtr, GDExtensionConstStringNamePtr, ?[*]const GDExtensionPropertyInfo, GDExtensionInt) callconv(.C) void),
classdb_unregister_extension_class: ?*const fn (GDExtensionClassLibraryPtr, GDExtensionConstStringNamePtr) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionClassLibraryPtr, GDExtensionConstStringNamePtr) callconv(.C) void),
get_library_path: ?*const fn (GDExtensionClassLibraryPtr, GDExtensionStringPtr) callconv(.C) void = std.mem.zeroes(?*const fn (GDExtensionClassLibraryPtr, GDExtensionStringPtr) callconv(.C) void),
};
pub const GDExtensionInitializationLevel = enum(c_uint) {
GDEXTENSION_INITIALIZATION_CORE = 0,
GDEXTENSION_INITIALIZATION_SERVERS = 1,
GDEXTENSION_INITIALIZATION_SCENE = 2,
GDEXTENSION_INITIALIZATION_EDITOR = 3,
GDEXTENSION_MAX_INITIALIZATION_LEVEL = 4,
};
pub const GDExtensionInitialization = extern struct {
minimum_initialization_level: GDExtensionInitializationLevel = std.mem.zeroes(GDExtensionInitializationLevel),
userdata: ?*anyopaque = std.mem.zeroes(?*anyopaque),
initialize: ?*const fn (?*anyopaque, GDExtensionInitializationLevel) callconv(.C) void = std.mem.zeroes(?*const fn (?*anyopaque, GDExtensionInitializationLevel) callconv(.C) void),
deinitialize: ?*const fn (?*anyopaque, GDExtensionInitializationLevel) callconv(.C) void = std.mem.zeroes(?*const fn (?*anyopaque, GDExtensionInitializationLevel) callconv(.C) void),
};
pub const GDExtensionInitializationFunction = ?*const fn (?[*]const GDExtensionInterface, GDExtensionClassLibraryPtr, ?[*]GDExtensionInitialization) callconv(.C) GDExtensionBool;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment