Documentation ¶
Index ¶
- Constants
- Variables
- func Alloc(bytes int) unsafe.Pointer
- func AllocArrayPtr[T any](len int) *T
- func AllocCopy(src unsafe.Pointer, bytes int) unsafe.Pointer
- func AllocCopyVariantPtrSliceAsGDExtensionVariantPtrPtr(ptrs []*Variant) *GDExtensionConstVariantPtr
- func AllocZeros(bytes int) unsafe.Pointer
- func ClassDBAddProperty(inst GDClass, p_property_type GDExtensionVariantType, p_property_name string, ...)
- func ClassDBAddPropertyGroup(t GDClass, p_name string, p_prefix string)
- func ClassDBAddPropertySubgroup(t GDClass, p_name string, p_prefix string)
- func ClassDBAddSignal(t GDClass, signalName string, params ...SignalParam)
- func ClassDBBindBitfieldFlag(t GDClass, p_enum_name, p_constant_name string, p_constant_value int)
- func ClassDBBindConstant(t GDClass, p_constant_name string, p_constant_value int)
- func ClassDBBindEnumConstant(t GDClass, p_enum_name, p_constant_name string, p_constant_value int)
- func ClassDBRegisterClass[T Object](in T, propertyList []GDExtensionPropertyInfo, ...)
- func CreateGDClassInstance(tn string) GDClass
- func Free(ptr unsafe.Pointer)
- func GDExtensionBindingDeinitializeLevel(userdata unsafe.Pointer, pLevel C.GDExtensionInitializationLevel)
- func GDExtensionBindingInitializeLevel(userdata unsafe.Pointer, pLevel C.GDExtensionInitializationLevel)
- func GDExtensionTypePtrFromReflectValue(value reflect.Value, rOut GDExtensionUninitializedTypePtr)
- func GDExtensionVariantPtrFromReflectValue(value reflect.Value, rOut GDExtensionUninitializedVariantPtr)
- func GoCallback_ClassCreationInfoCallVirtualWithData(pInstance C.GDExtensionClassInstancePtr, pName C.GDExtensionConstStringNamePtr, ...)
- func GoCallback_ClassCreationInfoCreateInstance(data unsafe.Pointer) C.GDExtensionObjectPtr
- func GoCallback_ClassCreationInfoFreeInstance(data unsafe.Pointer, ptr C.GDExtensionClassInstancePtr)
- func GoCallback_ClassCreationInfoFreePropertyList(pInstance C.GDExtensionClassInstancePtr, pList *C.GDExtensionPropertyInfo)
- func GoCallback_ClassCreationInfoGet(pInstance C.GDExtensionClassInstancePtr, pName C.GDExtensionConstStringNamePtr, ...) C.GDExtensionBool
- func GoCallback_ClassCreationInfoGetPropertyList(pInstance C.GDExtensionClassInstancePtr, rCount *C.uint32_t) *C.GDExtensionPropertyInfo
- func GoCallback_ClassCreationInfoGetVirtualCallWithData(pUserdata unsafe.Pointer, pName C.GDExtensionConstStringNamePtr) unsafe.Pointer
- func GoCallback_ClassCreationInfoNotification(p_instance C.GDExtensionClassInstancePtr, p_what C.int32_t, ...)
- func GoCallback_ClassCreationInfoPropertyCanRevert(p_instance C.GDExtensionClassInstancePtr, ...) C.GDExtensionBool
- func GoCallback_ClassCreationInfoPropertyGetRevert(p_instance C.GDExtensionClassInstancePtr, ...) C.GDExtensionBool
- func GoCallback_ClassCreationInfoSet(pInstance C.GDExtensionClassInstancePtr, pName C.GDExtensionConstStringNamePtr, ...) C.GDExtensionBool
- func GoCallback_ClassCreationInfoToString(p_instance C.GDExtensionClassInstancePtr, r_is_valid *C.GDExtensionBool, ...)
- func GoCallback_ClassCreationInfoValidateProperty(pInstance C.GDExtensionClassInstancePtr, pProperty *C.GDExtensionPropertyInfo) C.GDExtensionBool
- func GoCallback_MethodBindMethodCall(methodUserData unsafe.Pointer, instPtr C.GDExtensionClassInstancePtr, ...)
- func GoCallback_MethodBindMethodPtrcall(methodUserData unsafe.Pointer, instPtr C.GDExtensionClassInstancePtr, ...)
- func NewGDExtensionClassMethodInfoFromMethodBind(mb *MethodBindImpl) *GDExtensionClassMethodInfo
- func NewSimpleGDExtensionPropertyInfo(className string, variantType GDExtensionVariantType, name string) GDExtensionPropertyInfo
- func Realloc(ptr unsafe.Pointer, bytes int) unsafe.Pointer
- func ReflectTypeToGDExtensionVariantType(t reflect.Type) GDExtensionVariantType
- type ClassInfo
- type GodotAllocator
- type InitObject
- func (o InitObject) Init() bool
- func (o InitObject) RegisterCoreInitializer(pCoreInit GDExtensionBindingCallback)
- func (o InitObject) RegisterCoreTerminator(pCoreTerminate GDExtensionBindingCallback)
- func (o InitObject) RegisterEditorInitializer(pEditorInit GDExtensionBindingCallback)
- func (o InitObject) RegisterEditorTerminator(pEditorTerminate GDExtensionBindingCallback)
- func (o InitObject) RegisterSceneInitializer(pSceneInit GDExtensionBindingCallback)
- func (o InitObject) RegisterSceneTerminator(pSceneTerminate GDExtensionBindingCallback)
- func (o InitObject) RegisterServerInitializer(pServerInit GDExtensionBindingCallback)
- func (o InitObject) RegisterServerTerminator(pServerTerminate GDExtensionBindingCallback)
- type InternalImpl
- type MethodBindAndClassMethodInfo
- type MethodBindImpl
- func ClassDBBindMethod(inst GDClass, goMethodName string, gdMethodName string, argNames []string, ...) *MethodBindImpl
- func ClassDBBindMethodVarargs(inst GDClass, goMethodName string, gdMethodName string, argNames []string, ...) *MethodBindImpl
- func ClassDBBindMethodVirtual(inst GDClass, goMethodName string, gdMethodName string, argNames []string, ...) *MethodBindImpl
- func NewMethodBind(className string, methodName string, goMethodName string, ...) *MethodBindImpl
- type MethodMetadata
- type PropertySetGet
- type ReturnStyle
- type SignalParam
- type VarargCallFunc
Constants ¶
const (
MaxAllocBytes = 2 << 28
)
Variables ¶
var ( Internal InternalImpl GDExtensionBindingInitCallbacks [GDEXTENSION_MAX_INITIALIZATION_LEVEL]GDExtensionBindingCallback GDExtensionBindingTerminateCallbacks [GDEXTENSION_MAX_INITIALIZATION_LEVEL]GDExtensionBindingCallback )
Functions ¶
func AllocCopyVariantPtrSliceAsGDExtensionVariantPtrPtr ¶
func AllocCopyVariantPtrSliceAsGDExtensionVariantPtrPtr(ptrs []*Variant) *GDExtensionConstVariantPtr
AllocCopyVariantPtrSliceAsGDExtensionVariantPtrPtr
func AllocZeros ¶
AllocZeros returns zeroed out bytes allocated in C memory.
func ClassDBAddProperty ¶
func ClassDBAddProperty( inst GDClass, p_property_type GDExtensionVariantType, p_property_name string, p_setter string, p_getter string, )
ClassDBAddProperty default p_index = -1
func ClassDBAddPropertyGroup ¶
func ClassDBAddSignal ¶
func ClassDBAddSignal(t GDClass, signalName string, params ...SignalParam)
func ClassDBBindBitfieldFlag ¶
ClassDBBindBitfieldFlag binds a bitfield value in godot.
func ClassDBBindConstant ¶
ClassDBBindConstant binds a constant in godot.
func ClassDBBindEnumConstant ¶
ClassDBBindEnumConstant binds a enum value in godot.
func ClassDBRegisterClass ¶
func ClassDBRegisterClass[T Object]( in T, propertyList []GDExtensionPropertyInfo, validateProperty func(*GDExtensionPropertyInfo), bindMethodsFunc func(t GDClass), )
func CreateGDClassInstance ¶
func CreateGDClassInstance(tn string) GDClass
func GDExtensionBindingDeinitializeLevel ¶
func GDExtensionBindingDeinitializeLevel(userdata unsafe.Pointer, pLevel C.GDExtensionInitializationLevel)
func GDExtensionBindingInitializeLevel ¶
func GDExtensionBindingInitializeLevel(userdata unsafe.Pointer, pLevel C.GDExtensionInitializationLevel)
func GoCallback_ClassCreationInfoCallVirtualWithData ¶
func GoCallback_ClassCreationInfoCallVirtualWithData(pInstance C.GDExtensionClassInstancePtr, pName C.GDExtensionConstStringNamePtr, pUserdata unsafe.Pointer, p_args *C.GDExtensionConstTypePtr, rRet C.GDExtensionTypePtr)
func GoCallback_ClassCreationInfoCreateInstance ¶
func GoCallback_ClassCreationInfoCreateInstance(data unsafe.Pointer) C.GDExtensionObjectPtr
GoCallback_ClassCreationInfoCreateInstance is registered as a callback when a new GDScript instance is created.
func GoCallback_ClassCreationInfoFreeInstance ¶
func GoCallback_ClassCreationInfoFreeInstance(data unsafe.Pointer, ptr C.GDExtensionClassInstancePtr)
func GoCallback_ClassCreationInfoFreePropertyList ¶
func GoCallback_ClassCreationInfoFreePropertyList(pInstance C.GDExtensionClassInstancePtr, pList *C.GDExtensionPropertyInfo)
func GoCallback_ClassCreationInfoGet ¶
func GoCallback_ClassCreationInfoGet(pInstance C.GDExtensionClassInstancePtr, pName C.GDExtensionConstStringNamePtr, rRet C.GDExtensionVariantPtr) C.GDExtensionBool
func GoCallback_ClassCreationInfoGetPropertyList ¶
func GoCallback_ClassCreationInfoGetPropertyList(pInstance C.GDExtensionClassInstancePtr, rCount *C.uint32_t) *C.GDExtensionPropertyInfo
func GoCallback_ClassCreationInfoNotification ¶
func GoCallback_ClassCreationInfoNotification(p_instance C.GDExtensionClassInstancePtr, p_what C.int32_t, p_reversed C.GDExtensionBool)
func GoCallback_ClassCreationInfoPropertyCanRevert ¶
func GoCallback_ClassCreationInfoPropertyCanRevert(p_instance C.GDExtensionClassInstancePtr, p_name C.GDExtensionConstStringNamePtr) C.GDExtensionBool
func GoCallback_ClassCreationInfoPropertyGetRevert ¶
func GoCallback_ClassCreationInfoPropertyGetRevert(p_instance C.GDExtensionClassInstancePtr, p_name C.GDExtensionConstStringNamePtr, r_ret C.GDExtensionVariantPtr) C.GDExtensionBool
func GoCallback_ClassCreationInfoSet ¶
func GoCallback_ClassCreationInfoSet(pInstance C.GDExtensionClassInstancePtr, pName C.GDExtensionConstStringNamePtr, pValue C.GDExtensionConstVariantPtr) C.GDExtensionBool
func GoCallback_ClassCreationInfoToString ¶
func GoCallback_ClassCreationInfoToString( p_instance C.GDExtensionClassInstancePtr, r_is_valid *C.GDExtensionBool, p_out C.GDExtensionStringPtr)
func GoCallback_ClassCreationInfoValidateProperty ¶
func GoCallback_ClassCreationInfoValidateProperty(pInstance C.GDExtensionClassInstancePtr, pProperty *C.GDExtensionPropertyInfo) C.GDExtensionBool
func GoCallback_MethodBindMethodCall ¶
func GoCallback_MethodBindMethodCall( methodUserData unsafe.Pointer, instPtr C.GDExtensionClassInstancePtr, argPtrs *C.GDExtensionVariantPtr, argumentCount C.GDExtensionInt, rReturn C.GDExtensionVariantPtr, rError *C.GDExtensionCallError, )
GoCallback_MethodBindMethodCall is called when GDScript vararg methods calls into Go.
func GoCallback_MethodBindMethodPtrcall ¶
func GoCallback_MethodBindMethodPtrcall( methodUserData unsafe.Pointer, instPtr C.GDExtensionClassInstancePtr, argPtrs *C.GDExtensionConstTypePtr, rReturn C.GDExtensionTypePtr, )
called when godot calls into golang code
func NewGDExtensionClassMethodInfoFromMethodBind ¶
func NewGDExtensionClassMethodInfoFromMethodBind(mb *MethodBindImpl) *GDExtensionClassMethodInfo
func ReflectTypeToGDExtensionVariantType ¶
ReflectTypeToGDExtensionVariantType returns the correct GDExtensionVariantType given a reflect.Type.
Types ¶
type ClassInfo ¶
type ClassInfo struct { Name string NameAsStringNamePtr GDExtensionConstStringNamePtr ParentName string ParentNameAsStringNamePtr GDExtensionConstStringNamePtr Level GDExtensionInitializationLevel MethodMap map[string]*MethodBindAndClassMethodInfo SignalNameMap map[string]struct{} VirtualMethodMap map[string]*MethodBindAndClassMethodInfo PropertyNameMap map[string]struct{} ConstantNameMap map[string]struct{} ParentPtr *ClassInfo ClassType reflect.Type InheritType reflect.Type PropertyList []GDExtensionPropertyInfo ValidateProperty func(*GDExtensionPropertyInfo) }
func NewClassInfo ¶
type GodotAllocator ¶
type GodotAllocator struct{}
func (*GodotAllocator) Destroy ¶
func (a *GodotAllocator) Destroy() error
func (*GodotAllocator) Free ¶
func (a *GodotAllocator) Free(pointer unsafe.Pointer)
type InitObject ¶
type InitObject struct {
// contains filtered or unexported fields
}
func NewInitObject ¶
func NewInitObject( getProcAddress GDExtensionInterfaceGetProcAddress, library GDExtensionClassLibraryPtr, initialization *GDExtensionInitialization, ) *InitObject
func (InitObject) Init ¶
func (o InitObject) Init() bool
func (InitObject) RegisterCoreInitializer ¶
func (o InitObject) RegisterCoreInitializer(pCoreInit GDExtensionBindingCallback)
func (InitObject) RegisterCoreTerminator ¶
func (o InitObject) RegisterCoreTerminator(pCoreTerminate GDExtensionBindingCallback)
func (InitObject) RegisterEditorInitializer ¶
func (o InitObject) RegisterEditorInitializer(pEditorInit GDExtensionBindingCallback)
func (InitObject) RegisterEditorTerminator ¶
func (o InitObject) RegisterEditorTerminator(pEditorTerminate GDExtensionBindingCallback)
func (InitObject) RegisterSceneInitializer ¶
func (o InitObject) RegisterSceneInitializer(pSceneInit GDExtensionBindingCallback)
func (InitObject) RegisterSceneTerminator ¶
func (o InitObject) RegisterSceneTerminator(pSceneTerminate GDExtensionBindingCallback)
func (InitObject) RegisterServerInitializer ¶
func (o InitObject) RegisterServerInitializer(pServerInit GDExtensionBindingCallback)
func (InitObject) RegisterServerTerminator ¶
func (o InitObject) RegisterServerTerminator(pServerTerminate GDExtensionBindingCallback)
type InternalImpl ¶
type MethodBindAndClassMethodInfo ¶
type MethodBindAndClassMethodInfo struct { MethodBind *MethodBindImpl ClassMethodInfo *GDExtensionClassMethodInfo }
type MethodBindImpl ¶
type MethodBindImpl struct { ClassName string MethodName string GoMethodName string MethodMetadata MethodMetadata PtrcallFunc reflect.Value }
func ClassDBBindMethod ¶
func ClassDBBindMethod(inst GDClass, goMethodName string, gdMethodName string, argNames []string, defaultValues []Variant) *MethodBindImpl
func ClassDBBindMethodVarargs ¶
func ClassDBBindMethodVarargs( inst GDClass, goMethodName string, gdMethodName string, argNames []string, defaultValues []Variant, ) *MethodBindImpl
func ClassDBBindMethodVirtual ¶
func ClassDBBindMethodVirtual(inst GDClass, goMethodName string, gdMethodName string, argNames []string, defaultValues []Variant) *MethodBindImpl
func NewMethodBind ¶
func NewMethodBind( className string, methodName string, goMethodName string, methodMetadata MethodMetadata, ptrcallFunc reflect.Value, ) *MethodBindImpl
func (*MethodBindImpl) Call ¶
func (b *MethodBindImpl) Call( inst GDClass, gdArgs []Variant, ) Variant
Call is to be called by GDScript
func (*MethodBindImpl) Ptrcall ¶
func (b *MethodBindImpl) Ptrcall( inst GDClass, gdArgs []GDExtensionConstTypePtr, rReturn GDExtensionUninitializedTypePtr, )
func (*MethodBindImpl) String ¶
func (b *MethodBindImpl) String() string
type MethodMetadata ¶
type MethodMetadata struct { Func reflect.Value GoReturnType reflect.Type GoReturnStyle ReturnStyle GoArgumentTypes []reflect.Type ReturnType GDExtensionVariantType ReturnPropertyInfo GDExtensionPropertyInfo ArgumentsInfo []GDExtensionPropertyInfo ArgumentsMetadata []GDExtensionClassMethodArgumentMetadata ArgumentTypes []GDExtensionVariantType DefaultArguments []Variant DefaultArgumentPtrs []GDExtensionVariantPtr IsVariadic bool IsVirtual bool MethodFlags MethodFlags }
func NewMethodMetadata ¶
type PropertySetGet ¶
type PropertySetGet struct { Index int Setter string Getter string Type GDExtensionVariantType // contains filtered or unexported fields }
PropertySetGet holds metadata of the getter and setting functions of a Godot property.
type ReturnStyle ¶
type ReturnStyle uint8
const ( NoneReturnStyle ReturnStyle = iota ValueReturnStyle ValueAndBoolReturnStyle )
type SignalParam ¶
type SignalParam struct { Type GDExtensionVariantType Name string }
type VarargCallFunc ¶
type VarargCallFunc func(GDClass, ...Variant) Variant
CallFunc is the function signature that can be called from GDScript