Crate gdnative [] [src]

Rust bindings for the Godot game engine

Reference-counting and mutability

All non trivially copyable godot types exposed in this crate are internally reference-counted and allow mutable aliasing. In rust parlance this means that a type such as gdnative::ByteArray is functionally equivalent to a Rc<Cell<Vec<u8>>> rather than Vec<u8>.

Since it is easy to expect container types to allocate a copy of their content when using the Clone trait, most of these types do not implement Clone and instead provide a new_ref(&self) -> Self method to create references to the same collection or object.

Re-exports

pub extern crate gdnative_geom as geom;
pub use geom::*;

Macros

godot_class
godot_error
godot_init
godot_warn

Structs

ARVRAnchor
ARVRCamera
ARVRController
ARVRInterface
ARVRInterfaceGDNative
ARVROrigin
ARVRPositionalTracker
ARVRServer
AStar
AcceptDialog
AnimatedSprite
AnimatedSprite3D
Animation
AnimationPlayer
AnimationTreePlayer
Area
Area2D
ArrayMesh
AtlasTexture
AudioBusLayout
AudioEffect
AudioEffectAmplify
AudioEffectBandLimitFilter
AudioEffectBandPassFilter
AudioEffectChorus
AudioEffectCompressor
AudioEffectDelay
AudioEffectDistortion
AudioEffectEQ
AudioEffectEQ6
AudioEffectEQ10
AudioEffectEQ21
AudioEffectFilter
AudioEffectHighPassFilter
AudioEffectHighShelfFilter
AudioEffectLimiter
AudioEffectLowPassFilter
AudioEffectLowShelfFilter
AudioEffectNotchFilter
AudioEffectPanner
AudioEffectPhaser
AudioEffectPitchShift
AudioEffectReverb
AudioEffectStereoEnhance
AudioServer
AudioStream
AudioStreamOGGVorbis
AudioStreamPlayback
AudioStreamPlayer
AudioStreamPlayer2D
AudioStreamPlayer3D
AudioStreamRandomPitch
AudioStreamSample
BackBufferCopy
BakedLightmap
BakedLightmapData
BaseButton
BitMap
BitmapFont
BoneAttachment
BoxContainer
BoxShape
BulletPhysicsDirectBodyState
BulletPhysicsServer
Button
ButtonGroup
ByteArray

A reference-counted vector of bytes that uses Godot's pool allocator.

Camera
Camera2D
CanvasItem
CanvasItemMaterial
CanvasLayer
CanvasModulate
CapsuleMesh
CapsuleShape
CapsuleShape2D
CenterContainer
CheckBox
CheckButton
CircleShape2D
CollisionObject
CollisionObject2D
CollisionPolygon
CollisionPolygon2D
CollisionShape
CollisionShape2D
Color
ColorArray

A reference-counted vector of ColorArray that uses Godot's pool allocator.

ColorPicker
ColorPickerButton
ColorRect
ConcavePolygonShape
ConcavePolygonShape2D
ConeTwistJoint
ConfigFile
ConfirmationDialog
Container
Control
ConvexPolygonShape
ConvexPolygonShape2D
CubeMap
CubeMesh
Curve
Curve2D
Curve3D
CurveTexture
CylinderMesh
DampedSpringJoint2D
Dictionary

A reference-counted Dictionary of Variant key-value pairs.

DirectionalLight
DynamicFont
DynamicFontData
EditorExportPlugin
EditorFileDialog
EditorFileSystem
EditorFileSystemDirectory
EditorImportPlugin
EditorInterface
EditorPlugin
EditorResourceConversionPlugin
EditorResourcePreview
EditorResourcePreviewGenerator
EditorSceneImporter
EditorScenePostImport
EditorScript
EditorSelection
EditorSettings
EditorSpatialGizmo
EncodedObjectAsID
Environment
FileDialog
Float32Array

A reference-counted vector of f32 that uses Godot's pool allocator.

Font
FuncRef
GDNative
GDNativeLibrary
GDScript
GDScriptFunctionState
GIProbe
GIProbeData
Generic6DOFJoint
GeometryInstance
GlobalConstants
GodotClassInfo
GodotRef
GodotString

Godot's reference-counted string type.

Gradient
GradientTexture
GraphEdit
GraphNode
GridContainer
GridMap
GrooveJoint2D
HBoxContainer
HScrollBar
HSeparator
HSlider
HSplitContainer
HTTPClient
HTTPRequest
HingeJoint
IP
IP_Unix
Image
ImageTexture
ImmediateGeometry
Input
InputDefault
InputEvent
InputEventAction
InputEventGesture
InputEventJoypadButton
InputEventJoypadMotion
InputEventKey
InputEventMagnifyGesture
InputEventMouse
InputEventMouseButton
InputEventMouseMotion
InputEventPanGesture
InputEventScreenDrag
InputEventScreenTouch
InputEventWithModifiers
InputMap
InstancePlaceholder
Int32Array

A reference-counted vector of i32 that uses Godot's pool allocator.

InterpolatedCamera
ItemList
JSONParseResult
JavaScript
Joint
Joint2D
KinematicBody
KinematicBody2D
KinematicCollision
KinematicCollision2D
Label
LargeTexture
Light
Light2D
LightOccluder2D
Line2D
LineEdit
LineShape2D
LinkButton
Listener
MainLoop
MarginContainer
Material
MenuButton
Mesh
MeshDataTool
MeshInstance
MeshLibrary
MobileVRInterface
MultiMesh
MultiMeshInstance
NativeScript
Navigation
Navigation2D
NavigationMesh
NavigationMeshInstance
NavigationPolygon
NavigationPolygonInstance
NetworkedMultiplayerENet
NetworkedMultiplayerPeer
NinePatchRect
Node
Node2D
NodePath

A reference-counted relative or absolute path in a scene tree, for use with Node.get_node() and similar functions. It can reference a node, a resource within a node, or a property of a node or resource.

Nothing
Object
OccluderPolygon2D
OmniLight
OptionButton
PCKPacker
PHashTranslation
PackedDataContainer
PackedDataContainerRef
PackedScene
PacketPeer
PacketPeerStream
PacketPeerUDP
Panel
PanelContainer
PanoramaSky
ParallaxBackground
ParallaxLayer
Particles
Particles2D
ParticlesMaterial
Path
Path2D
PathFollow
PathFollow2D
Performance
Physics2DDirectBodyState
Physics2DDirectBodyStateSW
Physics2DDirectSpaceState
Physics2DServer
Physics2DServerSW
Physics2DShapeQueryParameters
Physics2DShapeQueryResult
Physics2DTestMotionResult
PhysicsBody
PhysicsBody2D
PhysicsDirectBodyState
PhysicsDirectSpaceState
PhysicsServer
PhysicsShapeQueryParameters
PhysicsShapeQueryResult
PinJoint
PinJoint2D
PlaneMesh
PlaneShape
PluginScript
Polygon2D
PolygonPathFinder
Popup
PopupDialog
PopupMenu
PopupPanel
Position2D
Position3D
PrimitiveMesh
PrismMesh
ProceduralSky
ProgressBar
ProjectSettings
Property
PropertyBuilder
PropertyUsage
ProximityGroup
ProxyTexture
QuadMesh
RayCast
RayCast2D
RayShape
RayShape2D
RectangleShape2D
Reference
ReferenceRect
ReflectionProbe
RegEx
RegExMatch
RemoteTransform
RemoteTransform2D
Resource
ResourceImporter
ResourceImporterOGGVorbis
ResourceImporterTheora
ResourceImporterWebm
ResourceInteractiveLoader
ResourcePreloader
RichTextLabel
Rid

The RID type is used to access the unique integer ID of a resource. They are opaque, so they do not grant access to the associated resource by themselves.

RigidBody
RigidBody2D
SceneState
SceneTree
SceneTreeTimer
Script
ScriptEditor
ScrollBar
ScrollContainer
SegmentShape2D
Separator
Shader
ShaderMaterial
Shape
Shape2D
ShortCut
Signal
Skeleton
Sky
Slider
SliderJoint
Spatial
SpatialGizmo
SpatialMaterial
SpatialVelocityTracker
SphereMesh
SphereShape
SpinBox
SplitContainer
SpotLight
Sprite
Sprite3D
SpriteBase3D
SpriteFrames
StaticBody
StaticBody2D
StreamPeer
StreamPeerBuffer
StreamPeerSSL
StreamPeerTCP
StreamTexture
StringArray

A vector of GodotString that uses Godot's pool allocator.

StringName
StyleBox
StyleBoxEmpty
StyleBoxFlat
StyleBoxLine
StyleBoxTexture
SurfaceTool
TCP_Server
TabContainer
Tabs
TextEdit
Texture
TextureButton
TextureProgress
TextureRect
Theme
TileMap
TileSet
Timer
ToolButton
TouchScreenButton
Translation
TranslationServer
Tree
TreeItem
TriangleMesh
Tween
UndoRedo
Utf8String
VBoxContainer
VScrollBar
VSeparator
VSlider
VSplitContainer
Variant

A Variant can represent many of godot's core types.

VariantArray

A reference-counted Variant vector. Godot's generic array data type. Negative indices can be used to count from the right.

Vector2Array

A reference-counted vector of Vector2 that uses Godot's pool allocator.

Vector3Array

A reference-counted vector of Vector3 that uses Godot's pool allocator.

VehicleBody
VehicleWheel
VideoPlayer
VideoStream
VideoStreamTheora
VideoStreamWebm
Viewport
ViewportContainer
ViewportTexture
VisibilityEnabler
VisibilityEnabler2D
VisibilityNotifier
VisibilityNotifier2D
VisualInstance
VisualScript
VisualScriptBasicTypeConstant
VisualScriptBuiltinFunc
VisualScriptClassConstant
VisualScriptComment
VisualScriptCondition
VisualScriptConstant
VisualScriptConstructor
VisualScriptCustomNode
VisualScriptDeconstruct
VisualScriptEmitSignal
VisualScriptEngineSingleton
VisualScriptExpression
VisualScriptFunction
VisualScriptFunctionCall
VisualScriptFunctionState
VisualScriptGlobalConstant
VisualScriptIndexGet
VisualScriptIndexSet
VisualScriptInputAction
VisualScriptIterator
VisualScriptLocalVar
VisualScriptLocalVarSet
VisualScriptMathConstant
VisualScriptNode
VisualScriptOperator
VisualScriptPreload
VisualScriptPropertyGet
VisualScriptPropertySet
VisualScriptResourcePath
VisualScriptReturn
VisualScriptSceneNode
VisualScriptSceneTree
VisualScriptSelect
VisualScriptSelf
VisualScriptSequence
VisualScriptSubCall
VisualScriptSwitch
VisualScriptTypeCast
VisualScriptVariableGet
VisualScriptVariableSet
VisualScriptWhile
VisualScriptYield
VisualScriptYieldSignal
VisualServer
WeakRef
WindowDialog
World
World2D
WorldEnvironment
XMLParser
YSort
_ClassDB
_Directory
_Engine
_File
_Geometry
_JSON
_Marshalls
_Mutex
_OS
_ResourceLoader
_ResourceSaver
_Semaphore
_Thread
_VisualScriptEditor

Enums

ARVRInterfaceCapabilities
ARVRInterfaceEyes
ARVRInterfaceTracking_status
ARVRPositionalTrackerTrackerHand
ARVRServerRotationMode
ARVRServerTrackerType
AnimationInterpolationType
AnimationPlayerAnimationProcessMode
AnimationTrackType
AnimationTreePlayerAnimationProcessMode
AnimationTreePlayerNodeType
AnimationUpdateMode
Area2DSpaceOverride
AreaSpaceOverride
ArrayMeshArrayFormat
ArrayMeshArrayType
AudioEffectDistortionMode
AudioEffectFilterFilterDB
AudioServerSpeakerMode
AudioStreamPlayer3DAttenuationModel
AudioStreamPlayer3DDopplerTracking
AudioStreamPlayer3DOutOfRangeMode
AudioStreamPlayerMixTarget
AudioStreamSampleFormat
AudioStreamSampleLoopMode
BackBufferCopyCopyMode
BakedLightmapBakeError
BakedLightmapBakeMode
BakedLightmapBakeQuality
BaseButtonActionMode
BaseButtonDrawMode
BoxContainerAlignMode
ButtonTextAlign
Camera2DAnchorMode
CameraDopplerTracking
CameraKeepAspect
CameraProjection
CanvasItemBlendMode
CanvasItemMaterialBlendMode
CanvasItemMaterialLightMode
CollisionPolygon2DBuildMode
ConeTwistJointParam
ControlAnchor
ControlCursorShape
ControlFocusMode
ControlGrowDirection
ControlLayoutPreset
ControlLayoutPresetMode
ControlMouseFilter
ControlSizeFlags
CubeMapFlags
CubeMapSide
CubeMapStorage
CurveTangentMode
DirectionalLightShadowDepthRange
DirectionalLightShadowMode
DynamicFontSpacingType
EditorFileDialogAccess
EditorFileDialogDisplayMode
EditorFileDialogMode
EditorPluginCustomControlContainer
EditorPluginDockSlot
EnvironmentBGMode
EnvironmentDOFBlurQuality
EnvironmentGlowBlendMode
EnvironmentSSAOBlur
EnvironmentSSAOQuality
EnvironmentToneMapper
FileDialogAccess
FileDialogMode
GIProbeSubdiv
Generic6DOFJointFlag
Generic6DOFJointParam
GeometryInstanceFlags
GeometryInstanceShadowCastingSetting
GodotError
GraphNodeOverlay
HTTPClientMethod
HTTPClientResponseCode
HTTPClientStatus
HTTPRequestResult
HingeJointFlag
HingeJointParam
IPResolverStatus
IPType
ImageAlphaMode
ImageCompressMode
ImageCompressSource
ImageFormat
ImageInterpolation
ImageTextureStorage
InputCursorShape
InputMouseMode
ItemListIconMode
ItemListSelectMode
LabelAlign
LabelVAlign
Light2DMode
Light2DShadowFilter
LightBakeMode
LightParam
Line2DLineCapMode
Line2DLineJointMode
Line2DLineTextureMode
LineEditAlign
LineEditMenuItems
LinkButtonUnderlineMode
MeshArrayFormat
MeshArrayType
MeshBlendShapeMode
MeshPrimitiveType
MultiMeshColorFormat
MultiMeshTransformFormat
NetworkedMultiplayerENetCompressionMode
NetworkedMultiplayerPeerConnectionStatus
NetworkedMultiplayerPeerTransferMode
NinePatchRectAxisStretchMode
NodeDuplicateFlags
NodePauseMode
NodeRPCMode
ObjectConnectFlags
OccluderPolygon2DCullMode
OmniLightShadowDetail
OmniLightShadowMode
PackedSceneGenEditState
Particles2DDrawOrder
ParticlesDrawOrder
ParticlesMaterialEmissionShape
ParticlesMaterialFlags
ParticlesMaterialParameter
PathFollowRotationMode
PerformanceMonitor
Physics2DServerAreaBodyStatus
Physics2DServerAreaParameter
Physics2DServerAreaSpaceOverrideMode
Physics2DServerBodyMode
Physics2DServerBodyParameter
Physics2DServerBodyState
Physics2DServerCCDMode
Physics2DServerDampedStringParam
Physics2DServerJointParam
Physics2DServerJointType
Physics2DServerProcessInfo
Physics2DServerShapeType
Physics2DServerSpaceParameter
PhysicsServerAreaBodyStatus
PhysicsServerAreaParameter
PhysicsServerAreaSpaceOverrideMode
PhysicsServerBodyAxis
PhysicsServerBodyMode
PhysicsServerBodyParameter
PhysicsServerBodyState
PhysicsServerConeTwistJointParam
PhysicsServerG6DOFJointAxisFlag
PhysicsServerG6DOFJointAxisParam
PhysicsServerHingeJointFlag
PhysicsServerHingeJointParam
PhysicsServerJointType
PhysicsServerPinJointParam
PhysicsServerProcessInfo
PhysicsServerShapeType
PhysicsServerSliderJointParam
PhysicsServerSpaceParameter
PinJointParam
ProceduralSkyTextureSize
PropertyHint
ProximityGroupDispatchMode
ReflectionProbeUpdateMode
RichTextLabelAlign
RichTextLabelItemType
RichTextLabelListType
RigidBody2DCCDMode
RigidBody2DMode
RigidBodyMode
SceneStateGenEditState
SceneTreeGroupCallFlags
SceneTreeStretchAspect
SceneTreeStretchMode
ShaderMode
SkyRadianceSize
SliderJointParam
SpatialMaterialBillboardMode
SpatialMaterialBlendMode
SpatialMaterialCullMode
SpatialMaterialDepthDrawMode
SpatialMaterialDetailUV
SpatialMaterialDiffuseMode
SpatialMaterialEmissionOperator
SpatialMaterialFeature
SpatialMaterialFlags
SpatialMaterialSpecularMode
SpatialMaterialTextureChannel
SpatialMaterialTextureParam
SplitContainerDraggerVisibility
SpriteBase3DAlphaCutMode
SpriteBase3DDrawFlags
StreamPeerSSLStatus
StreamPeerTCPStatus
StyleBoxTextureAxisStretchMode
TabContainerTabAlign
TabsCloseButtonDisplayPolicy
TabsTabAlign
TextEditMenuItems
TextEditSearchFlags
TextureButtonStretchMode
TextureFlags
TextureProgressFillMode
TextureRectStretchMode
TileMapHalfOffset
TileMapMode
TileMapTileOrigin
TileSetAutotileBindings
TileSetBitmaskMode
TimerTimerProcessMode
TouchScreenButtonVisibilityMode
TreeDropModeFlags
TreeItemTextAlign
TreeItemTreeCellMode
TreeSelectMode
TweenEaseType
TweenTransitionType
TweenTweenProcessMode
UndoRedoMergeMode
VariantType
ViewportClearMode
ViewportDebugDraw
ViewportMSAA
ViewportRenderInfo
ViewportShadowAtlasQuadrantSubdiv
ViewportUpdateMode
ViewportUsage
VisibilityEnabler2DEnabler
VisibilityEnablerEnabler
VisualScriptBuiltinFuncBuiltinFunc
VisualScriptCustomNodeStartMode
VisualScriptFunctionCallCallMode
VisualScriptFunctionCallRPCCallMode
VisualScriptInputActionMode
VisualScriptMathConstantMathConstant
VisualScriptPropertyGetCallMode
VisualScriptPropertySetAssignOp
VisualScriptPropertySetCallMode
VisualScriptYieldSignalCallMode
VisualScriptYieldYieldMode
VisualServerArrayFormat
VisualServerArrayType
VisualServerBlendShapeMode
VisualServerCanvasLightMode
VisualServerCanvasLightShadowFilter
VisualServerCanvasOccluderPolygonCullMode
VisualServerCubeMapSide
VisualServerFeatures
VisualServerInstanceType
VisualServerLightParam
VisualServerLightType
VisualServerNinePatchAxisMode
VisualServerPrimitiveType
VisualServerRenderInfo
VisualServerScenarioDebugMode
VisualServerShaderMode
VisualServerTextureFlags
VisualServerViewportClearMode
VisualServerViewportDebugDraw
VisualServerViewportMSAA
VisualServerViewportRenderInfo
VisualServerViewportUpdateMode
VisualServerViewportUsage
XMLParserNodeType
_FileCompressionMode
_FileModeFlags
_OSMonth
_OSPowerState
_OSScreenOrientation
_OSSystemDir
_OSWeekday
_ResourceSaverSaverFlags
_ThreadPriority

Traits

GodotClass
GodotType
PropertyGetter
PropertySetter

Functions

result_from_sys

Type Definitions

GodotResult