Types

enum AnimationLoopMode
One of
AnimationLoopMode_Default,
AnimationLoopMode_Once,
AnimationLoopMode_Loop,
AnimationLoopMode_Clamp

struct AnimationClip
A 32 bit handle.

struct AnimationTransform
Float3 local_position
Quaternion local_rotation
Float3 position
Quaternion rotation

struct AnimationTransformBuffer
AnimationTransform transforms[128]

Creation & Destruction

AnimationClip_Create( void ) : AnimationClip

AnimationClip_Clone( AnimationClip animation_clip ) : AnimationClip

AnimationClip_Destroy( AnimationClip animation_clip ) : void

Functions

AnimationClip_Exists( AnimationClip animation_clip ) : bool

AnimationClip_Length( AnimationClip animation_clip ) : float

AnimationClip_FrameRate( AnimationClip animation_clip ) : float

AnimationClip_FrameCount( AnimationClip animation_clip ) : uint32_t

AnimationClip_LoopMode( AnimationClip animation_clip ) : AnimationLoopMode

Methods

AnimationClip_Load( AnimationClip animation_clip, char* file ): bool

AnimationClip_Unload( AnimationClip animation_clip ): bool

AnimationClip_SetLoopMode( AnimationClip animation_clip, AnimationLoopMode loop_mode ) : void

AnimationClip_Sample( AnimationClip animation_clip, float time, float weight, AnimationTransformBuffer* buffer ) : void

AnimationClip_SampleAdditive( AnimationClip animation_clip, float time, float weight, AnimationTransformBuffer* buffer ) : void




There can be a maximum of 16 animation layers.

Types

struct AnimationController A 32 bit handle.

enum AnimationLayerBlendMode
One of
AnimationLayerBlendMode_Default,
AnimationLayerBlendMode_Additive,

Creation & Destruction

AnimationController_Create( void ) : AnimationController

AnimationController_Clone( AnimationController controller ) : AnimationController

AnimationController_Destroy( AnimationController controller ) : void

Functions

AnimationController_Exists( AnimationController controller ) : bool

AnimationController_GetState( AnimationController controller, Ico_Name namekey ) : AnimationState

Methods

AnimationController_CreateState( AnimationController controller, Ico_Name namekey, AnimationClip clip, uint32_t layer ) : AnimationState

AnimationController_GetState( AnimationController controller, uint32_t layer, AnimationLayerBlendMode blend_mode ) :void

AnimationController_Update( AnimationController controller, float delta_time, AnimationTransformBuffer* result ) :void




Types

struct AnimationMask A 32 bit handle.

Creation & Destruction

AnimationMask_Create( void ) : AnimationMask

Functions

AnimationMask_Exists(AnimationMask) : void

Methods

AnimationMask_SetValue(AnimationMask, int index, float value ) : void

AnimationMask_SetAllValues( float value ) : void




Types

struct AnimationState

typedef struct AnimationState {
  AnimationController controller;
  uint32_t state_id;
} AnimationState;

Functions

AnimationState_Controller( AnimationState state ) : AnimationController

AnimationState_Clip( AnimationState state ) : AnimationClip

AnimationState_Layer( AnimationState state ) : uint32_t

AnimationState_LoopMode( AnimationState state ) : AnimationLoopMode

AnimationState_Enabled( AnimationState state ) : bool

AnimationState_Weight( AnimationState state ) : float

AnimationState_TargetWeight( AnimationState state ) : float

AnimationState_Speed( AnimationState state ) : float

AnimationState_Time( AnimationState state ) : float

Methods

AnimationState_SetClip( AnimationState state, AnimationClip clip ) : void

AnimationState_SetLoopMode( AnimationState state, AnimationLoopMode loop_mode ) : void

AnimationState_SetEnabled( AnimationState state, bool enabled ) : void

AnimationState_Play( AnimationState state) : void

AnimationState_Pause( AnimationState state) : void

AnimationState_Stop( AnimationState state) : void

AnimationState_SetWeight( AnimationState state, float weight ) : void

AnimationState_SetTargetWeight( AnimationState state, float target_weight ) : void

AnimationState_SetSpeed( AnimationState state, float speed ) : void
AnimationState_SetTime( AnimationState state, float time ) : void




Macros

‘DEFINE_ARRAYLIST(TYPE)’ Define a new Arraylist.

Types

struct ArrayList
A typed, dynamically sized array, where ##TYPE is replaced by the typename, such as ‘ArrayList_float’.

Functions

ArrayList_Create( const uint32_t initial_capacity) : ArrayList
Create an array with an initial capacity. This will use the default allocator.

ArrayList_Create( const uint32_t initial_capacity, void* (* const allocate)(const uint32_t size, uint32_t* allocation_size_bytes), void (* const deallocate)(void* memory, const uint32_t size) ) : ArrayList
Create an array with an initial capacity. Using a custom allocator.


ArrayList_Exists(ArrayList array) : bool

ArrayList_Copy( const TYPE* data, uint32_t length, void* (* const allocate)(const uint32_t size, uint32_t* allocation_size_bytes), void (* const deallocate)(void* memory, const uint32_t size) ) : ArrayList
Create an array from a copy of the data.

ArrayList_Clone( const ArrayList array, void* (* const allocate)(const uint32_t size, uint32_t* allocation_size_bytes), void (* const deallocate)(void* memory, const uint32_t size) ) : ArrayList
Clone the array.


ArrayList_Count(ArrayList array) : uint32_t


ArrayList_Capacity(ArrayList array) : uint32_t


ArrayList_Clear(ArrayList array) : void


ArrayList_Destroy(ArrayList array) : void


ArrayList_ShrinkToFit(ArrayList array) : void


ArrayList_Reserve(ArrayList array, uint32_t capacity) : void


ArrayList_Get(ArrayList array, uint32_t index, TYPE* result) : bool
On success, returns true and populates the value in result.


ArrayList_Set(ArrayList array, uint32_t index, TYPE value) : bool
On success, returns true and sets the value in the array.


ArrayList_Pop(ArrayList array, TYPE* result) : bool
On success, returns true and populates the value in result.


ArrayList_Push(ArrayList array, TYPE value) : void


ArrayList_Append(ArrayList array, TYPE* values, uint32_t length) : void


ArrayList_InsertAt(ArrayList array, uint32_t index, TYPE value) : bool
On success, returns true and sets the value in the array.


ArrayList_RemoveAt(ArrayList array, uint32_t index) : bool


ArrayList_ExtractAt(ArrayList array, uint32_t index, TYPE* result) : bool


ArrayList_RawBuffer(ArrayList array, uint32_t* result_size) : const TYPE*


ArrayList_GetRef(ArrayList array, uint32_t index) : const TYPE*


ArrayList_GetMutRef(ArrayList array, uint32_t index) : TYPE*




Types

struct Bool2 A SIMD vector of 2 booleans, stored in a bitmask (true is 0xFFFFFFFF, false is 0). On Intel, this is an m128i, on Arm this is a int32x2_t.

Functions

Bool2_X( Bool2 a ) : bool

Bool2_Y( Bool2 a ) : bool

Bool2_Any( Bool2 a ) : bool

Bool2_All( Bool2 a ) : bool

Bool2_And( Bool2 a, Bool2 b ) : Bool2

Bool2_Or( Bool2 a, Bool2 b ) : Bool2

Bool2_Xor( Bool2 a, Bool2 b ) : Bool2

Bool2_AndNot( Bool2 a, Bool2 b ) : Bool2




Types

struct Bool3 A SIMD vector of 3 booleans, stored in a bitmask (true is 0xFFFFFFFF, false is 0). On Intel, this is an m128i, on Arm this is a int32x4_t.

Functions

Bool3_X( Bool3 a ) : bool

Bool3_Y( Bool3 a ) : bool

Bool3_Z( Bool3 a ) : bool

Bool3_Any( Bool3 a ) : bool

Bool3_All( Bool3 a ) : bool

Bool3_And( Bool3 a, Bool3 b ) : Bool3

Bool3_Or( Bool3 a, Bool3 b ) : Bool3

Bool3_Xor( Bool3 a, Bool3 b ) : Bool3

Bool3_AndNot( Bool3 a, Bool3 b ) : Bool3




Types

struct Bool4 A SIMD vector of 4 booleans, stored in a bitmask (true is 0xFFFFFFFF, false is 0). On Intel, this is an m128i, on Arm this is a int32x4_t.

Functions

Bool4_X( Bool4 a ) : bool

Bool4_Y( Bool4 a ) : bool

Bool4_Z( Bool4 a ) : bool

Bool4_W( Bool4 a ) : bool

Bool4_Any( Bool4 a ) : bool

Bool4_All( Bool4 a ) : bool

Bool4_And( Bool4 a, Bool4 b ) : Bool4

Bool4_Or( Bool4 a, Bool4 b ) : Bool4

Bool4_Xor( Bool4 a, Bool4 b ) : Bool4

Bool4_AndNot( Bool4 a, Bool4 b ) : Bool4




Types

struct Camera A 32 bit handle.

enum RendererClearMode Clear flags for the camera.

typedef enum RendererClearMode{
  RendererClearMode_DontClear = 0,
  RendererClearMode_ClearColorOnly = 1,
  RendererClearMode_ClearDepthOnly = 2,
  RendererClearMode_ClearColorAndDepth = 3,
}RendererClearMode;

Creation & Destruction

Camera_Add( GameObject object ) : Camera Attaches a camera to the game object.

Camera_Destroy( Camera camera ) : void Destroys the camera.

Functions

Camera_Get( GameObject object ) : Camera Returns the first camera attached to the game object.

Camera_GameObject( Camera camera ) : GameObject Return the game object this camera is attached to.

Camera_VerticalFOV( Camera camera ) : float Returns the vertical fov of the camera in degrees. Returns NaN if the camera is null.

Camera_NearClip( Camera camera ) : float Returns the near clip distance of the camera. Returns NaN if the camera is null.

Camera_FarClip( Camera camera ) : float Returns the far clip distance of the camera. Returns NaN if the camera is null.

Camera_LayerMask( Camera camera ) : uint32_t Returns the layer mask of the camera. Returns 0 if the camera is null.

Camera_RenderOrder( Camera camera ) : uint32_t Returns the render order of the camera. Returns 0 if the camera is null.

Camera_ClearColor( Camera camera ) : Float4 Returns the clear color of the camera. Returns NaN if the camera is null.

Camera_ClearDepth( Camera camera ) : float Returns the clear depth of the camera. Returns NaN if the camera is null.

Camera_ClearMode( Camera camera ) : RendererClearMode Returns the clear mode of the camera. Returns 0 if the camera is null.

Camera_RenderTexture( Camera camera ) : RenderTexture Returns the render texture attached to this camera, if one exists.

Camera_ReplacementShader( Camera camera ) : Shader Returns the shader attached to this camera, if one exists.

Camera_WorldToScreenPoint( Camera camera, Float3 world ) : Float3 Transforms the world space point to camera-screen space. Returns NaN if the camera is null.

Camera_ScreenToWorldPoint( Camera camera, Float3 screen ) : Float3 Transforms the screen space point to world space. Returns NaN if the camera is null.

Camera_WorldToViewportPoint( Camera camera, Float3 world ) : Float3 Transforms the world space point to camera-viewport space. Returns NaN if the camera is null.

Camera_ViewportToWorldPoint( Camera camera, Float3 viewport ) : Float3 Transforms the viewport space point to world space. Returns NaN if the camera is null.

Camera_ScreenToWorldPoint( Camera camera, Float3 screen ) : Float3 Transforms the screen space point to a world space ray. Returns NaN if the camera is null.

Camera_ViewportPointToRay( Camera camera, Float3 viewport ) : Float3 Transforms the viewport space point to a world space ray. Returns NaN if the camera is null.

Methods

Camera_SetVerticalFOV( Camera camera, float vertical_fov_degrees ) : void
Sets the vertical fov of the camera in degrees.

Camera_SetNearClip( Camera camera, float near_clip ) : void
Sets the near clip distance of the camera.

Camera_SetFarClip( Camera camera, float far_clip ) : void
Sets the far clip distance of the camera.

Camera_SetLayerMask( Camera camera, uint32_t bitmask ) : void
Sets the layermask of the camera.

Camera_SetRenderOrder( Camera camera, uint32_t order ) : void
Sets the render order of the camera.

Camera_SetClearColor( Camera camera, Float4 color ) : void
Sets the clear color of the camera.

Camera_SetClearDepth( Camera camera, float clear_depth ) : void
Sets the clear depth of the camera, values from 0 to 1.

Camera_SetClearMode( Camera camera, RendererClearMode clear_mode ) : void
Sets the clear mode of the camera.

Camera_SetRenderTexture( Camera camera, RenderTexture render_texture ) : void
Sets the render target on the camera. Passing null will set the camera to render to the screen buffer.

Camera_SetReplacementShader( Camera camera, Shader shader ) : void
Sets a replacement shader this camera will use for all draws. Setting to null clears the shader.




Types

struct Float2 A SIMD vector of 2 floats. On Intel, this is an m128, on Arm this is a float32x2_t.

Functions

Float2_Zero( void ) : Float2

Float2_Init( float v ) : Float2

Float2_FromFloat3( Float3 v ) : Float2

Float2_FromFloat4( Float4 v ) : Float2

Float2_New( float x, float y ) : Float2

Float2_ToInt( Float2 v ) : Int2

Float2_X( Float2 a ) : float

Float2_Y( Float2 a ) : float

Float2_SetX( Float2 a, float v ) : Float2

Float2_SetY( Float2 a, float v ) : Float2

Float2_Add( Float2 a, Float2 b ) : Float2

Float2_MulAdd( Float2 a, Float2 b, Float2 c ) : Float2

Float2_NegMulAdd( Float2 a, Float2 b, Float2 c ) : Float2

Float2_Sub( Float2 a, Float2 b ) : Float2

Float2_Mul( Float2 a, Float2 b ) : Float2

Float2_Scale( Float2 a, Float2 b ) : Float2

Float2_Div( Float2 a, Float2 b ) : Float2

Float2_Abs( Float2 a ) : Float2

Float2_And( Float2 a, Float2 b ) : Float2

Float2_Or( Float2 a, Float2 b ) : Float2

Float2_Xor( Float2 a, Float2 b ) : Float2

Float2_AndNot( Float2 a, Float2 b ) : Float2

Float2_CopySign( Float2 a, Float2 b ) : Float2

Float2_Min( Float2 a, Float2 b ) : Float2

Float2_Max( Float2 a, Float2 b ) : Float2

Float2_Sqrt( Float2 a, Float2 b ) : Float2

Float2_Equal( Float2 a, Float2 b ) : Bool2

Float2_NotEqual( Float2 a, Float2 b ) : Bool2

Float2_Greater( Float2 a, Float2 b ) : Bool2

Float2_GreaterEqual( Float2 a, Float2 b ) : Bool2

Float2_Less( Float2 a, Float2 b ) : Bool2

Float2_LessEqual( Float2 a, Float2 b ) : Bool2

Float2_ApproxEqual( Float2 a, Float2 b ) : Bool2

Float2_Lerp( Float2 a, Float2 b, float t) : Float2

Float2_Dot( Float2 a, Float2 b ) : Float2

Float2_Negate( Float2 v ) : Float2

Float2_SqrMagnitude( Float2 v ) : float

Float2_Magnitude( Float2 v ) : float

Float2_SqrDistance( Float2 v ) : float

Float2_Distance( Float2 v ) : float

Float2_Normalized( Float2 v ) : Float2

Float2_NormalizedAndLength( Float2 v, float* prior_length ) : Float2

Float2_Select( Float2 a, Float2 b, Bool2 mask ) : Float2

Float2_Truncate( Float2 v ) : Float2

Float2_Floor( Float2 v ) : Float2

Float2_Ceil( Float2 v ) : Float2

Float2_Round( Float2 v ) : Float2

Float2_PingPong( Float2 v ) : Float2

Float2_Rotate( Float2 v, float radians ) : Float2

Swizzles

Float2_XX( Float2 a ) : Float2 Float2_YY( Float2 a ) : Float2

Float2_XY( Float2 a ) : Float2
Float2_YX( Float2 a ) : Float2




Types

struct Float3 A SIMD vector of 3 floats. On Intel, this is an m128, on Arm this is a float32x4_t.

Functions

Float3_Zero( void ) : Float3

Float3_Init( float v ) : Float3

Float3_New( float x, float y, float z ) : Float3

Float3_FromFloat2( Float2 v ) : Float3

Float3_FromFloat4( Float4 v ) : Float3

Float3_ToInt( Float3 v ) : Int3

Float3_X( Float3 a ) : float

Float3_Y( Float3 a ) : float

Float3_Z( Float3 a ) : float

Float3_SetX( Float3 a, float v ) : Float3

Float3_SetY( Float3 a, float v ) : Float3

Float3_SetZ( Float3 a, float v ) : Float3

Float3_Add( Float3 a, Float3 b ) : Float3

Float3_MulAdd( Float3 a, Float3 b, Float3 c ) : Float3

Float3_NegMulAdd( Float3 a, Float3 b, Float3 c ) : Float3

Float3_Sub( Float3 a, Float3 b ) : Float3

Float3_Mul( Float3 a, Float3 b ) : Float3

Float3_Scale( Float3 a, float b ) : Float3

Float3_Div( Float3 a, Float3 b ) : Float3

Float3_Abs( Float3 a ) : Float3

Float3_And( Float3 a, Float3 b ) : Float3

Float3_Or( Float3 a, Float3 b ) : Float3

Float3_Xor( Float3 a, Float3 b ) : Float3

Float3_AndNot( Float3 a, Float3 b ) : Float3

Float3_CopySign( Float3 a, Float3 b ) : Float3

Float3_Min( Float3 a, Float3 b ) : Float3

Float3_Max( Float3 a, Float3 b ) : Float3

Float3_Sqrt( Float3 a, Float3 b ) : Float3

Float3_Equal( Float3 a, Float3 b ) : Bool3

Float3_NotEqual( Float3 a, Float3 b ) : Bool3

Float3_Greater( Float3 a, Float3 b ) : Bool3

Float3_GreaterEqual( Float3 a, Float3 b ) : Bool3

Float3_Less( Float3 a, Float3 b ) : Bool3

Float3_LessEqual( Float3 a, Float3 b ) : Bool3

Float3_ApproxEqual( Float3 a, Float3 b ) : Bool3

Float3_Lerp( Float3 a, Float3 b, float t) : Float3

Float3_Dot( Float3 a, Float3 b ) : Float3

Float3_Negate( Float3 v ) : Float3

Float3_SqrMagnitude( Float3 v ) : float

Float3_Magnitude( Float3 v ) : float

Float3_SqrDistance( Float3 v ) : float

Float3_Distance( Float3 v ) : float

Float3_Normalized( Float3 v ) : Float4

Float3_NormalizedAndLength( Float3 v, float* prior_length ) : Float3

Float3_Cross( Float3 lhs, Float3 rhs ) : Float3

Float3_Select( Float3 a, Float3 b, Bool3 mask ) : Float3

Float3_Truncate( Float3 v ) : Float3

Float3_Floor( Float3 v ) : Float3

Float3_Ceil( Float3 v ) : Float3

Float3_Round( Float3 v ) : Float3

Float3_PingPong( Float3 v ) : Float3

Float3_Cos( Float3 v ) : Float3

Float3_CosDeg( Float3 v ) : Float3

Float3_Sin( Float3 v ) : Float3

Float3_SinDeg( Float3 v ) : Float3

Float3_Tan( Float3 v ) : Float3

Float3_TanDeg( Float3 v ) : Float3

Float3_ACos( Float3 v ) : Float3

Float3_ASin( Float3 v ) : Float3

Float3_Atan2( Float3 y, Float3 x ) : Float3

Swizzles

Float3_XXX( Float3 a ) : Float3 Float3_YYY( Float3 a ) : Float3
Float3_ZZZ( Float3 a ) : Float3

Float3_XYZ( Float3 a ) : Float3
Float3_XZY( Float3 a ) : Float3

Float3_YXZ( Float3 a ) : Float3
Float3_YZX( Float3 a ) : Float3

Float3_ZXY( Float3 a ) : Float3
Float3_ZYX( Float3 a ) : Float3




Types

struct Float4 A SIMD vector of 4 floats. On Intel, this is an m128, on Arm this is a float32x4_t.

Functions

Float4_Zero( void ) : Float4

Float4_Init( float v ) : Float4

Float4_FromFloat2( Float2 v ) : Float4

Float4_FromFloat3( Float3 v ) : Float4

Float4_New( float x, float y, float z, float w ) : Float4

Float4_Store( Float4 v, float* mem_addr ) : void

Float4_ToInt( Float4 v ) : Int4

Float4_X( Float4 a ) : float

Float4_Y( Float4 a ) : float

Float4_Z( Float4 a ) : float

Float4_W( Float4 a ) : float

Float4_SetX( Float4 a, float v ) : Float4

Float4_SetY( Float4 a, float v ) : Float4

Float4_SetZ( Float4 a, float v ) : Float4

Float4_SetW( Float4 a, float v ) : Float4

Float4_Add( Float4 a, Float4 b ) : Float4

Float4_MulAdd( Float4 a, Float4 b, Float4 c ) : Float4

Float4_NegMulAdd( Float4 a, Float4 b, Float4 c ) : Float4

Float4_Sub( Float4 a, Float4 b ) : Float4

Float4_Mul( Float4 a, Float4 b ) : Float4

Float4_Scale( Float4 a, float b ) : Float4

Float4_Div( Float4 a, Float4 b ) : Float4

Float4_Abs( Float4 a ) : Float4

Float4_And( Float4 a, Float4 b ) : Float4

Float4_Or( Float4 a, Float4 b ) : Float4

Float4_Xor( Float4 a, Float4 b ) : Float4

Float4_AndNot( Float4 a, Float4 b ) : Float4

Float4_CopySign( Float4 a, Float4 b ) : Float4

Float4_Min( Float4 a, Float4 b ) : Float4

Float4_Max( Float4 a, Float4 b ) : Float4

Float4_Sqrt( Float4 a, Float4 b ) : Float4

Float4_Equal( Float4 a, Float4 b ) : Bool4

Float4_NotEqual( Float4 a, Float4 b ) : Bool4

Float4_Greater( Float4 a, Float4 b ) : Bool4

Float4_GreaterEqual( Float4 a, Float4 b ) : Bool4

Float4_Less( Float4 a, Float4 b ) : Bool4

Float4_LessEqual( Float4 a, Float4 b ) : Bool4

Float4_ApproxEqual( Float4 a, Float4 b ) : Bool4

Float4_Lerp( Float4 a, Float4 b, float t) : Float4

Float4_Dot( Float4 a, Float4 b ) : Float4

Float4_Negate( Float4 v ) : Float4

Float4_SqrMagnitude( Float4 v ) : float

Float4_Magnitude( Float4 v ) : float

Float4_SqrDistance( Float4 v ) : float

Float4_Distance( Float4 v ) : float

Float4_Normalized( Float4 v ) : Float4

Float4_NormalizedAndLength( Float4 v, float* prior_length ) : Float4

Float4_Select( Float4 a, Float4 b, Bool4 mask ) : Float4

Float4_Truncate( Float4 v ) : Float4

Float4_Floor( Float4 v ) : Float4

Float4_Ceil( Float4 v ) : Float4

Float4_Round( Float4 v ) : Float4

Float4_PingPong( Float4 v ) : Float4

Float4_Cos( Float4 v ) : Float4

Float4_CosDeg( Float4 v ) : Float4

Float4_Sin( Float4 v ) : Float4

Float4_SinDeg( Float4 v ) : Float4

Float4_Tan( Float4 v ) : Float4

Float4_TanDeg( Float4 v ) : Float4

Float4_ACos( Float4 v ) : Float4

Float4_ASin( Float4 v ) : Float4

Float4_Atan2( Float4 y, Float4 x ) : Float4

Swizzles

Float4_XXXX( Float4 a ) : Float4
Float4_YYYY( Float4 a ) : Float4
Float4_ZZZZ( Float4 a ) : Float4
Float4_WWWW( Float4 a ) : Float4

Float4_XYZW( Float4 a ) : Float4
Float4_XYWZ( Float4 a ) : Float4
Float4_XZYW( Float4 a ) : Float4
Float4_XZWY( Float4 a ) : Float4
Float4_XWYZ( Float4 a ) : Float4
Float4_XWZY( Float4 a ) : Float4

Float4_YXZW( Float4 a ) : Float4
Float4_YXWZ( Float4 a ) : Float4
Float4_YZXW( Float4 a ) : Float4
Float4_YZWX( Float4 a ) : Float4
Float4_YWXZ( Float4 a ) : Float4
Float4_YWZX( Float4 a ) : Float4

Float4_ZXYW( Float4 a ) : Float4
Float4_ZXWY( Float4 a ) : Float4
Float4_ZYXW( Float4 a ) : Float4
Float4_ZYWX( Float4 a ) : Float4
Float4_ZWXY( Float4 a ) : Float4
Float4_ZWYX( Float4 a ) : Float4

Float4_WXYZ( Float4 a ) : Float4
Float4_WXZY( Float4 a ) : Float4
Float4_WYXZ( Float4 a ) : Float4
Float4_WYZX( Float4 a ) : Float4
Float4_WZXY( Float4 a ) : Float4
Float4_WZYX( Float4 a ) : Float4




Column Floats.

Types

struct Float4x4 64-byte matrix composed of 4 16-byte Floats.

Functions

Float4x4_Zero( void ) : Float4x4

Float4x4_Init( float v ) : Float4x4

Float4x4_New( float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13, float m20, float m21, float m22, float m23, float m30, float m31, float m32, float m33 ) : Float4x4

Float4x4_InitColumns( struct Float4 c0, struct Float4 c1, struct Float4 c2, struct Float4 c3 ) : Float4x4

Float4x4_InitRows( Float4 r0, Float4 r1, Float4 r2, Float4 r3 ) : Float4x4

Float4x4_GetProjection( float half_angle, float aspect, float near_clip, float far_clip ) : Float4x4

Float4x4_GetRotation( Quaternion rotation ) : Float4x4

Float4x4_GetTranslationRotation( Float3 translation, Quaternion rotation, float uniformScale ) : Float4x4

Float4x4_Store( Float4x4 matrix, float* mem_addr ) : void

Float4x4_Transpose( Float4x4 matrix ) : Float4x4

Float4x4_Add( Float4x4 a, Float4x4 b ) : Float4x4

Float4x4_Sub( Float4x4 a, Float4x4 b ) : Float4x4

Float4x4_Sub( Float4x4 matrix, float scale ) : Float4x4

Float4x4_Mul( Float4x4 a, Float4x4 b ) : Float4x4

Float4x4_MulVec( Float4x4 matrix, Float4 Float ) : Float4

Float4x4_TransformPoint( Float4x4 matrix, Float3 Float ) : Float3

Float4x4_TransformFloat( Float4x4 matrix, Float3 Float ) : Float3




Currently there is a maximum of 65536 GameObjects at any given time. These are statically allocated at startup.

Types

struct GameObject A 32 bit handle.

enum GameObjectState One of GameObjectStateNull, GameObjectStateEnabled, GameObjectStateDisabled, GameObjectStateDestroyed

Creation & Destruction

GameObject_Create(void) : GameObject Create a new GameObject.

GameObject_CreateInactive(void) : GameObject Create a new GameObject that is disabled.

GameObject_Instantiate( GameObject source ) : GameObject Clone the GameObject at source recursively.

GameObject_Destroy( GameObject object ) : void
Destroy the GameObject, if it exists.

Functions

GameObject_Exists( GameObject object ) : bool
Returns true if the GameObject is non-null.

GameObject_Status( GameObject object ) : GameObjectState Returns the state of this GameObject.

GameObject_ActiveSelf( GameObject object ) : bool
Returns the active status of the object independent of the hierarchy. Returns false if the GameObject is null.

GameObject_ActiveInHierarchy( GameObject object ) : bool
Returns the active status of the object taking the hierarchy into account. Returns false if the GameObject is null.

GameObject_Parent( GameObject object ) : GameObject Returns the object’s parent. If the object is null, a warning is logged and a null object is returned.

GameObject_FirstChild( GameObject object ) : GameObject Returns the object’s first child. If the object is null, a warning is logged and a null object is returned.

GameObject_NextSibling( GameObject object ) : GameObject Returns the object’s next sibling. If the object is null, a warning is logged and a null object is returned.

GameObject_PreviousSibling( GameObject object ) : GameObject Returns the object’s previous sibling. If the object is null, a warning is logged and a null object is returned.

GameObject_LocalPosition( GameObject object ) : Float3 Returns the local position of this object. If the object is null, a warning is logged and NaN is returned.

GameObject_WorldPosition( GameObject object ) : Float3 Returns the world position of this object. If the object is null, a warning is logged and NaN is returned.

GameObject_LocalRotation( GameObject object ) : Quaternion
Returns the local rotation of this object. If the object is null, a warning is logged and NaN is returned.

GameObject_WorldRotation( GameObject object ) : Quaternion
Returns the world position of this object. If the object is null, a warning is logged and NaN is returned.

GameObject_LocalScale( GameObject object ) : float
Returns the local scale of this object. If the object is null, a warning is logged and NaN is returned.

GameObject_WorldScale( GameObject object ) : float
Returns the world scale of this object. If the object is null, a warning is logged and NaN is returned.

GameObject_TransformPoint( GameObject object, Float3 point ) : Float3
Transform the point from game-object-local to world space, using scale, rotation, and position. If the object is null, a warning is logged and NaN is returned.

GameObject_TransformFloat( GameObject object, Float3 Float ) : Float3
Transform the Float from game-object-local to world space, using scale and rotation. If the object is null, a warning is logged and NaN is returned.

GameObject_TransformDirection( GameObject object, Float3 direction ) : Float3
Transform the direction from game-object-local to world space, using rotation. If the object is null, a warning is logged and NaN is returned.

GameObject_InverseTransformPoint( GameObject object, Float3 point ) : Float3
Transform the point from world to game-object-local space, using scale, rotation, and position. If the object is null, a warning is logged and NaN is returned.

GameObject_InverseTransformFloat( GameObject object, Float3 Float ) : Float3
Transform the Float from world to game-object-local space, using scale and rotation. If the object is null, a warning is logged and NaN is returned.

GameObject_InverseTransformDirection( GameObject object, Float3 direction ) : Float3
Transform the direction from world to game-object-local space, using rotation. If the object is null, a warning is logged and NaN is returned.

GameObject_TransformMatrix( GameObject object, float asset_scale ) : Float4x4
Returns the matrix transforming points from local to world space, scaled by asset_scale. If the object is null, a warning is logged and NaN is returned.

GameObject_InverseTransformMatrix( GameObject object, float asset_scale ) : Float4x4
Returns the matrix transforming points from world to local space, scaled by asset_scale. If the object is null, a warning is logged and NaN is returned.

GameObject_LastModifiedFrame( GameObject object) : uint64_t
Returns the last frame this object was modified. If the object is null, a warning is logged and 0 is returned.

Methods

GameObject_Activate( GameObject object ) : GameObjectState Activates the object if possible and returns the state of the object. This will recursively update children.

GameObject_Deactivate( GameObject object ) : GameObjectState Deactivates the object if possible and returns the state of the object. This will recursively update children.

GameObject_SetParent( GameObject object, GameObject parent ) : bool
Set the object’s parent. Returns true if the operation succeeds. Returns false if either object is null or destroyed, or the operation would create a cycle.

GameObject_MakeRoot( GameObject object ) : bool
Set the object to be a root. This will unparent the object from its parent, if it has one. Returns true if the operation succeeds. Returns false if the object is null or destroyed.

GameObject_SetLocalPosition( GameObject object, Float3 position ) : bool
Set the object’s local position and update the hierarchy. Returns false if the object is null.

GameObject_SetWorldPosition( GameObject object, Float3 position ) : bool
Set the object’s world position and update the hierarchy. Returns false if the object is null.

GameObject_SetLocalRotation( GameObject object, Quaternion rotation ) : bool
Set the object’s local rotation and update the hierarchy. Returns false if the object is null.

GameObject_SetWorldRotation( GameObject object, Quaternion rotation ) : bool
Set the object’s world rotation and update the hierarchy. Returns false if the object is null.

GameObject_LookAt( GameObject object, Float3 point ) : bool
Set the object’s rotation to face point and update the hierarchy. Returns false if the object is null.

GameObject_SetLocalScale( GameObject object, float scale ) : bool
Set the object’s local scale and update the hierarchy. Returns false if the object is null.

GameObject_SetWorldScale( GameObject object, float scale ) : bool
Set the object’s world scale and update the hierarchy. Returns false if the object is null.




The output of the input methods is guaranteed to remain the same for the entire frame. Currently supports up to 32 mouse buttons, and 256 keyboard buttons.

Types

enum KeyCode
An enum for the USB HID codes

typedef enum  KeyCode{
KeyCode_A                    = 0x00,
KeyCode_S                    = 0x01,
KeyCode_D                    = 0x02,
KeyCode_F                    = 0x03,
KeyCode_H                    = 0x04,
KeyCode_G                    = 0x05,
KeyCode_Z                    = 0x06,
KeyCode_X                    = 0x07,
KeyCode_C                    = 0x08,
KeyCode_V                    = 0x09,
KeyCode_B                    = 0x0B,
KeyCode_Q                    = 0x0C,
KeyCode_W                    = 0x0D,
KeyCode_E                    = 0x0E,
KeyCode_R                    = 0x0F,
KeyCode_Y                    = 0x10,
KeyCode_T                    = 0x11,
KeyCode_Alpha1               = 0x12,
KeyCode_Alpha2               = 0x13,
KeyCode_Alpha3               = 0x14,
KeyCode_Alpha4               = 0x15,
KeyCode_Alpha6               = 0x16,
KeyCode_Alpha5               = 0x17,
KeyCode_Equal                = 0x18,
KeyCode_Alpha9               = 0x19,
KeyCode_Alpha7               = 0x1A,
KeyCode_Minus                = 0x1B,
KeyCode_Alpha8               = 0x1C,
KeyCode_Alpha0               = 0x1D,
KeyCode_RightBracket         = 0x1E,
KeyCode_O                    = 0x1F,
KeyCode_U                    = 0x20,
KeyCode_LeftBracket          = 0x21,
KeyCode_I                    = 0x22,
KeyCode_P                    = 0x23,
KeyCode_L                    = 0x25,
KeyCode_J                    = 0x26,
KeyCode_Quote                = 0x27,
KeyCode_K                    = 0x28,
KeyCode_Semicolon            = 0x29,
KeyCode_Backslash            = 0x2A,
KeyCode_Comma                = 0x2B,
KeyCode_Slash                = 0x2C,
KeyCode_N                    = 0x2D,
KeyCode_M                    = 0x2E,
KeyCode_Period               = 0x2F,
KeyCode_Grave                = 0x32,
KeyCode_KeypadDecimal        = 0x41,
KeyCode_KeypadMultiply       = 0x43,
KeyCode_KeypadPlus           = 0x45,
KeyCode_KeypadClear          = 0x47,
KeyCode_KeypadDivide         = 0x4B,
KeyCode_KeypadEnter          = 0x4C,
KeyCode_KeypadMinus          = 0x4E,
KeyCode_KeypadEquals         = 0x51,
KeyCode_Keypad0              = 0x52,
KeyCode_Keypad1              = 0x53,
KeyCode_Keypad2              = 0x54,
KeyCode_Keypad3              = 0x55,
KeyCode_Keypad4              = 0x56,
KeyCode_Keypad5              = 0x57,
KeyCode_Keypad6              = 0x58,
KeyCode_Keypad7              = 0x59,
KeyCode_Keypad8              = 0x5B,
KeyCode_Keypad9              = 0x5C,  
/* Independent Keycodes */
KeyCode_Return                    = 0x24,
KeyCode_Tab                       = 0x30,
KeyCode_Space                     = 0x31,
KeyCode_Delete                    = 0x33,
KeyCode_Escape                    = 0x35,
KeyCode_RightCommand              = 0x36,
KeyCode_LeftCommand               = 0x37,//55
KeyCode_LeftShift                 = 0x38,//56
KeyCode_CapsLock                  = 0x39,//57
KeyCode_LeftOption                = 0x3A,//58
KeyCode_LeftControl               = 0x3B,//59
KeyCode_RightShift                = 0x3C,//60
KeyCode_RightOption               = 0x3D,
KeyCode_RightControl              = 0x3E,
KeyCode_Function                  = 0x3F,
KeyCode_F17                       = 0x40,
KeyCode_VolumeUp                  = 0x48,
KeyCode_VolumeDown                = 0x49,
KeyCode_Mute                      = 0x4A,
KeyCode_F18                       = 0x4F,
KeyCode_F19                       = 0x50,
KeyCode_F20                       = 0x5A,
KeyCode_F5                        = 0x60,
KeyCode_F6                        = 0x61,
KeyCode_F7                        = 0x62,
KeyCode_F3                        = 0x63,
KeyCode_F8                        = 0x64,
KeyCode_F9                        = 0x65,
KeyCode_F11                       = 0x67,
KeyCode_F13                       = 0x69,
KeyCode_F16                       = 0x6A,
KeyCode_F14                       = 0x6B,
KeyCode_F10                       = 0x6D,
KeyCode_F12                       = 0x6F,
KeyCode_F15                       = 0x71,
KeyCode_Help                      = 0x72,
KeyCode_Home                      = 0x73,
KeyCode_PageUp                    = 0x74,
KeyCode_ForwardDelete             = 0x75,
KeyCode_F4                        = 0x76,
KeyCode_End                       = 0x77,
KeyCode_F2                        = 0x78,
KeyCode_PageDown                  = 0x79,
KeyCode_F1                        = 0x7A,
KeyCode_LeftArrow                 = 0x7B,
KeyCode_RightArrow                = 0x7C,
KeyCode_DownArrow                 = 0x7D,
KeyCode_UpArrow                   = 0x7E,
KeyCode_ISO_Section               = 0x0A,
KeyCode_JYen                  	 	= 0x5D,
KeyCode_JUnderscore           		= 0x5E,
KeyCode_JKeypadComma          		= 0x5F,
KeyCode_JEisu                  		= 0x66,
KeyCode_JKana                  		= 0x68  
} KeyCode;

Functions

Input_GetMousePosition( void ) : Float2
Returns the mouse position at the start of the frame.

Input_GetMouseDelta( void ) : Float2
Returns the mouse delta postion from the start of last frame to the start of the current frame.

Input_GetMouseButton( uint32_t button_id ) : bool
Returns the state of the mouse button at the start of the frame, e.g true if pressed, false if not pressed. Default is false. If a button does not exist, this returns false.

Input_GetMouseButtonDown( uint32_t button_id ) : bool
Returns true if a down event occured for the specified button last frame. NOTE: it is possible for both a down and up event to occur in the same frame, in which case both will return true.

Input_GetMouseButtonUp( uint32_t button_id ) : bool
Returns true if an up event occured for the specified button last frame. NOTE: it is possible for both a down and up event to occur in the same frame, in which case both will return true.

Input_GetMouseScrollX( void ) : float
Returns the total amount of mouse scrollwheel x motion from last frame.

Input_GetMouseScrollY( void ) : float
Returns the total amount of mouse scrollwheel y motion from last frame.

Input_GetKey( KeyCode key ) : bool
Returns the state of the keyboard button at the start of the frame, e.g true if pressed, false if not pressed. Default is false. If a button does not exist, this returns false.

Input_GetKeyDown( KeyCode key ) : bool
Returns true if a down event occured for the specified button last frame. NOTE: it is possible for both a down and up event to occur in the same frame, in which case both will return true.

Input_GetKeyUp( KeyCode key ) : bool
Returns true if an up event occured for the specified button last frame. NOTE: it is possible for both a down and up event to occur in the same frame, in which case both will return true.




Types

struct Int2 A SIMD vector of 2 ints. On Intel, this is an m128i, on Arm this is a int32x2_t.

Functions

Int2_Init( int32_t value ) : Int2

Int2_New( int32_t x, int32_t y ) : Int2

Int2_ToFloat( Int2 v ) : Vector2

Int2_X( Int2 a ) : int32_t

Int2_Y( Int2 a ) : int32_t

Int2_SetX( Int2 a, int32_t value ) : Int2

Int2_SetY( Int2 a, int32_t value ) : Int2

Int2_Add( Int2 a, Int2 b ) : Int2

Int2_Sub( Int2 a, Int2 b ) : Int2

Int2_Mul( Int2 a, Int2 b ) : Int2

Int2_Min( Int2 a, Int2 b ) : Int2

Int2_Max( Int2 a, Int2 b ) : Int2

Int2_Abs( Int2 a ) : Int2

Int2_And( Int2 a, Int2 b ) : Int2

Int2_Or( Int2 a, Int2 b ) : Int2

Int2_Xor( Int2 a, Int2 b ) : Int2

Int2_AndNot( Int2 a, Int2 b ) : Int2

Int2_Select( Int2 a, Int2 b, Int2 mask ) : Int2

Int2_Equal( Int2 a, Int2 b ) : Bool2

Int2_Less( Int2 a, Int2 b ) : Bool2

Int2_Greater( Int2 a, Int2 b ) : Bool2

Int2_NotEqual( Int2 a, Int2 b ) : Bool2

Int2_GreaterEqual( Int2 a, Int2 b ) : Bool2

Int2_LessEqual( Int2 a, Int2 b ) : Bool2

Swizzles

Int2_XX( Int2 a ) : Int2
Int2_YY( Int2 a ) : Int2

Int2_XY( Int2 a ) : Int2
Int2_YX( Int2 a ) : Int2




Types

struct Int3 A SIMD vector of 3 ints. On Intel, this is an m128i, on Arm this is a int32x4_t.

Functions

Int3_Init( int32_t value ) : Int3

Int3_New( int32_t x, int32_t y, int32_t z ) : Int3

Int3_ToFloat( Int3 v ) : Vector3

Int3_X( Int3 a ) : int32_t

Int3_Y( Int3 a ) : int32_t

Int3_Z( Int3 a ) : int32_t

Int3_SetX( Int3 a, int32_t value ) : Int3

Int3_SetY( Int3 a, int32_t value ) : Int3

Int3_SetZ( Int3 a, int32_t value ) : Int3

Int3_Add( Int3 a, Int3 b ) : Int3

Int3_Sub( Int3 a, Int3 b ) : Int3

Int3_Mul( Int3 a, Int3 b ) : Int3

Int3_Min( Int3 a, Int3 b ) : Int3

Int3_Max( Int3 a, Int3 b ) : Int3

Int3_Abs( Int3 a ) : Int3

Int3_And( Int3 a, Int3 b ) : Int3

Int3_Or( Int3 a, Int3 b ) : Int3

Int3_Xor( Int3 a, Int3 b ) : Int3

Int3_AndNot( Int3 a, Int3 b ) : Int3

Int3_Select( Int3 a, Int3 b, Bool3 mask ) : Int3

Int3_Equal( Int3 a, Int3 b ) : Bool3

Int3_Less( Int3 a, Int3 b ) : Bool3

Int3_Greater( Int3 a, Int3 b ) : Bool3

Int3_NotEqual( Int3 a, Int3 b ) : Bool3

Int3_GreaterEqual( Int3 a, Int3 b ) : Bool3

Int3_LessEqual( Int3 a, Int3 b ) : Bool3

Swizzles

Int3_XXX( Int3 a ) : Int3
Int3_YYY( Int3 a ) : Int3
Int3_ZZZ( Int3 a ) : Int3

Int3_XYZ( Int3 a ) : Int4
Int3_XZY( Int3 a ) : Int4

Int3_YXZ( Int3 a ) : Int4
Int3_YZX( Int3 a ) : Int4

Int3_ZXY( Int3 a ) : Int4
Int3_ZYX( Int3 a ) : Int4




Types

struct Int4 A SIMD vector of 4 ints. On Intel, this is an m128i, on Arm this is a int32x4_t.

Functions

Int4_Init( int32_t value ) : Int4

Int4_New( int3t x, int32_t y, int32_t z, int32_t w ) : Int4

Int4_ToFloat( Int4 v ) : Vector4

Int4_X( Int4 a ) : int32_t

Int4_Y( Int4 a ) : int32_t

Int4_Z( Int4 a ) : int32_t

Int4_W( Int4 a ) : int32_t

Int4_Add( Int4 a, Int4 b ) : Int4

Int4_Sub( Int4 a, Int4 b ) : Int4

Int4_Mul( Int4 a, Int4 b ) : Int4

Int4_Min( Int4 a, Int4 b ) : Int4

Int4_Max( Int4 a, Int4 b ) : Int4

Int4_Abs( Int4 a ) : Int4

Int4_And( Int4 a, Int4 b ) : Int4

Int4_Or( Int4 a, Int4 b ) : Int4

Int4_Xor( Int4 a, Int4 b ) : Int4

Int4_AndNot( Int4 a, Int4 b ) : Int4

Int4_Select( Int4 a, Int4 b, Bool4 mask ) : Int4

Int4_Equal( Int4 a, Int4 b ) : Bool4

Int4_Less( Int4 a, Int4 b ) : Bool4

Int4_Greater( Int4 a, Int4 b ) : Bool4

Int4_NotEqual( Int4 a, Int4 b ) : Bool4

Int4_GreaterEqual( Int4 a, Int4 b ) : Bool4

Int4_LessEqual( Int4 a, Int4 b ) : Bool4

Methods

Int4_SetX( Int4 a, int32_t value ) : Int4

Int4_SetY( Int4 a, int32_t value ) : Int4

Int4_SetZ( Int4 a, int32_t value ) : Int4

Int4_SetW( Int4 a, int32_t value ) : Int4

Swizzles

Int4_XXXX( Int4 a ) : Int4
Int4_YYYY( Int4 a ) : Int4
Int4_ZZZZ( Int4 a ) : Int4
Int4_WWWW( Int4 a ) : Int4

Int4_XYZW( Int4 a ) : Int4
Int4_XYWZ( Int4 a ) : Int4
Int4_XZYW( Int4 a ) : Int4
Int4_XZWY( Int4 a ) : Int4
Int4_XWYZ( Int4 a ) : Int4
Int4_XWZY( Int4 a ) : Int4

Int4_YXZW( Int4 a ) : Int4
Int4_YXWZ( Int4 a ) : Int4
Int4_YZXW( Int4 a ) : Int4
Int4_YZWX( Int4 a ) : Int4
Int4_YWXZ( Int4 a ) : Int4
Int4_YWZX( Int4 a ) : Int4

Int4_ZXYW( Int4 a ) : Int4
Int4_ZXWY( Int4 a ) : Int4
Int4_ZYXW( Int4 a ) : Int4
Int4_ZYWX( Int4 a ) : Int4
Int4_ZWXY( Int4 a ) : Int4
Int4_ZWYX( Int4 a ) : Int4

Int4_WXYZ( Int4 a ) : Int4
Int4_WXZY( Int4 a ) : Int4
Int4_WYXZ( Int4 a ) : Int4
Int4_WYZX( Int4 a ) : Int4
Int4_WZXY( Int4 a ) : Int4
Int4_WZYX( Int4 a ) : Int4




Types

struct Material A 32 bit handle.

Creation & Destruction

Material_Create( Shader shader) : Material
Creates a new material using the provided shader.

Material_Clone( Material material ) : Material
Creates a copy of the material.

Material_Destroy( Material material ) : Material
Destroys the material.

Functions

Material_Exists( Material material ) : bool
Returns true if the material exists.

Material_Color( Material material, uint32_t index ) : Float4
Returns the color at index, or NaN if the material is null or the index is out of range.

Material_Texture( Material material, uint32_t index ) : Texture
Returns the texture at index, or null if the material is null or the index is out of range.

Material_UVScaleOffset( Material material, uint32_t index ) : Float4
Returns the scale in xy and offset in zw at index, or NaN if the material is null or the index is out of range.

Material_Shader( Material material ) : Shader
Returns the shader, or null if the material is null.

Material_RenderQueue( Material material ) : uint16_t
Returns the render queue, or 65535 if the material is null.

Material_LastModifiedFrame( Material material ) : uint64_t
Returns the last frame this object was modified, or 0 if the material is null.

Methods

Material_SetColor( Material material, uint32_t index, Float4 color ) : void
Set the color at index. This marks the object as modified.

Material_SetTexture( Material material, uint32_t index, Texture texture ) : void
Set the texture at index. This marks the object as modified. NOTE - texture pointer, size, and sampler states are cached on assignment. Modification of texture settings at runtime is not well supported.

Material_SetUVScaleOffset( Material material, uint32_t index, Float4 uv_scale_offset ) : void
Set the uv scale in xy, and offset in zw at index. This marks the object as modified.

Material_SetShader( Material material, Shader shader ) : void
Set the shader. This does not mark the object as modified.

Material_SetRenderQueue( Material material, uint16_t render_queue ) : void
Set the render queue for ordering. This does not mark the object as modified.




Types

struct Mesh A 32 bit handle.

struct VertexData A packed 32-byte per vertex format.

typedef struct VertexData{
  float position[3];
  uint8_t color[4]; 
  uint16_t uv[2];
  uint8_t normal[4];
  uint8_t skin_index[4];
  uint8_t skin_weight[4]; 
}VertexData;

Creation & Destruction

Mesh_Create( void ) : Mesh Creates a new empty mesh.

Mesh_Init(
const VertexData* vertices,
uint32_t vertex_count,
const uint16_t* indices,
uint32_t index_count ) : Mesh Creates a new mesh from the vertices and indices specified.

Mesh_Destroy( Mesh mesh ) : void
Destroys the mesh and associated vertex buffers. The buffer memory may not be available for up to 3 frames.

Functions

Mesh_Exists( Mesh mesh ) : bool
Returns true if the Mesh is non-null.

Mesh_VertexCount( Mesh mesh ) : uint32_t
Returns the number of vertices in this mesh. Returns 0 if the mesh is null or there is no data.

Mesh_IndexCount( Mesh mesh ) : uint32_t
Returns the number of indices in this mesh. Returns 0 if the mesh is null or there is no data.

Mesh_Filescale( Mesh mesh ) : float
Returns the filescale of this mesh. Returns 1.0 if the mesh is null.

Methods

Mesh_SetFilescale( Mesh mesh, float val ) : void
Set the filescale of this mesh.




Types

struct MeshRenderer A 32 bit handle.

Creation & Destruction

MeshRenderer_Add( GameObject object ) : MeshRenderer Attaches a mesh renderer to the game object.

MeshRenderer_Destroy( MeshRenderer mesh_renderer ) : void Destroys the mesh renderer.

Functions

MeshRenderer_Get( GameObject object ) : MeshRenderer Returns the first mesh renderer attached to the game object.

MeshRenderer_GameObject( MeshRenderer mesh_renderer ) : GameObject Return the game object this mesh renderer is attached to.

MeshRenderer_LayerMask( MeshRenderer mesh_renderer ) : uint32_t Returns the layer mask of this mesh renderer.

MeshRenderer_Mesh( MeshRenderer mesh_renderer ) : Mesh Returns the mesh attached to this mesh renderer.

MeshRenderer_SharedMaterial( MeshRenderer mesh_renderer ) : Material Returns the shared material attached to this mesh renderer.

Methods

MeshRenderer_SetLayerMask( MeshRenderer mesh_renderer, uint32_t mask ) : void
Sets the layer mask.

MeshRenderer_SetMesh( MeshRenderer mesh_renderer, Mesh mesh ) : void
Sets a new mesh.

MeshRenderer_SetMaterial( MeshRenderer mesh_renderer, Material material ) : void
Sets a new material. This will destroy any previous material instance.

MeshRenderer_MaterialInstance( MeshRenderer mesh_renderer) : Material
Returns the material instance. Creates one if none exists.




Types

struct Quaternion

enum RotationOrder One of
XYZ,
XZY,
YXZ,
YZX,
ZXY,
ZYX

Functions

Quaternion_Identity( void ) : Quaternion
Returns a Quaternion with values (0.0, 0.0, 0.0, 1.0).

Quaternion_Mul( Quaternion lhs, Quaternion rhs ) : Quaternion

Quaternion_MulVec( Quaternion lhs, Float3 vec ) : Float3

Quaternion_Dot( Quaternion a, Quaternion b ) : Quaternion

Quaternion_Inverse( Quaternion q ) : Quaternion

Quaternion_Reverse( Quaternion q ) : Quaternion

Quaternion_Lerp( Quaternion from, Quaternion to, float blend ) : Quaternion
Quaternion_AngleAxis( float radians, Float3 axis ) : Quaternion

Quaternion_Angle( Quaternion a, Quaternion b ) : float

Quaternion_LookAt( Float3 source, Float3 point ) : Quaternion

Quaternion_ToAngleAxis( Quaternion q, float* angle, Float3* axis ) : bool




Types

struct RenderTexture A 32 bit handle.

enum MSAA

typedef enum MSAA{
  MSAA_1x=1,
  MSAA_4x=4,
} MSAA;

enum RenderTextureFormat

typedef enum RenderTextureFormat{
  RenderTextureFormat_BGRA8Unorm      = 80,
  RenderTextureFormat_RGBA16Float  = 115,
} RenderTextureFormat;

enum DepthTextureFormat

typedef enum DepthTextureFormat{
  DepthTextureFormat_None=0,
  DepthTextureFormat_Depth32Float  = 252,
} DepthTextureFormat;

Creation & Destruction

RenderTexture_Create( void ) : RenderTexture
Creates a new render texture.

RenderTexture_Create( RenderTexture render_texture ) : void

Functions

RenderTexture_Exists( RenderTexture render_texture ) : bool

RenderTexture_Width( RenderTexture render_texture ) : uint32_t

RenderTexture_Height( RenderTexture render_texture ) : uint32_t

RenderTexture_MSAA( RenderTexture render_texture ) : MSAA
RenderTexture_Format( RenderTexture render_texture ) : RenderTextureFormat

RenderTexture_DepthFormat( RenderTexture render_texture ) : DepthTextureFormat

RenderTexture_AspectRatio( RenderTexture render_texture ) : float

RenderTexture_InvAspectRatio( RenderTexture render_texture ) : float

RenderTexture_ResolveColor( RenderTexture render_texture ) : bool

RenderTexture_ResolveDepth( RenderTexture render_texture ) : bool

RenderTexture_Color( RenderTexture render_texture ) : Texture

RenderTexture_Depth( RenderTexture render_texture ) : Texture

Methods

RenderTexture_Init(
RenderTexture render_texture,
uint32_t width,
uint32_t height,
MSAA msaa,
RenderTextureFormat color_format,
bool resolve_color,
DepthTextureFormat depth_format,
bool resolve_depth) : void




Functions

Screen_ViewportSize( void ) : Float2
Returns the size of the application viewport in points as (width, height).

Screen_ViewportWidth( void ) : float
Returns the width of the application viewport in points.

Screen_ViewportHeight( void ) : float
Returns the height of the application viewport in points.

Screen_ViewportSize( void ) : Float2
Returns the size of the application viewport buffer in pixels as (width, height).

Screen_ViewportWidth( void ) : float
Returns the width of the application viewport buffer in pixels.

Screen_ViewportHeight( void ) : float
Returns the height of the application viewport buffer in pixels.

Screen_ViewportScale( void ) : float
Returns the pixel density of the viewport.

Screen_ViewportRenderParams( void ) : Float4
Returns the rendering params of the application viewport in pixels as (1.0/width, 1.0/height, width, height).

Screen_ViewportAspectRatio( void ) : float
Returns the aspect ratio of the viewport (width / height).

Screen_ViewportAspectRatio( void ) : float
Returns the inverse aspect ratio of the viewport (height / width).

Screen_ViewportPointToUIPoint( Float2 point) : Float2
Converts the viewport coordinate to ui coordinates. Viewport coordinates range from (0,0) in the upper left, to (width,height) in the lower right. UI coordinates range from (-width/2, -height/2) in the upper left to (width/2, height/2) in the lower right.

Screen_IsFullscreen( void ) : bool
Returns if the viewport is currently in fullscreen mode. NOTE: always true until windowing support is added.




Types

struct Shader A 32 bit handle.

enum ShaderComparison Comparison functions used for depth and stencil tests.

typedef enum ShaderComparison{
  ShaderComparison_Never = 0,
  ShaderComparison_Less = 1,
  ShaderComparison_Equal = 2,
  ShaderComparison_LEqual = 3 ,
  ShaderComparison_Greater = 4,
  ShaderComparison_NotEqual = 5,
  ShaderComparison_GEqual = 6,
  ShaderComparison_Always = 7
}ShaderComparison;

enum ShaderBlendOp Functions available for compositing.

typedef enum ShaderBlendOp{
  ShaderBlendOp_Add =0,
  ShaderBlendOp_Sub =1,
  ShaderBlendOp_RevSub=2,
  ShaderBlendOp_Min=3,
  ShaderBlendOp_Max=4
}ShaderBlendOp;

enum ShaderCullMode Triangle culling mode. ShaderCullMode_Back culls backfaces.

typedef enum ShaderCullMode{
  ShaderCullMode_None =0,
  ShaderCullMode_Front =1,
  ShaderCullMode_Back=2
}ShaderCullMode;

enum ShaderColorMask Mask for only rendering specific channels. ShaderColorMask_RGBA renders all channels.

typedef enum ShaderColorMask{
  ShaderColorMask_None = 0,
  ShaderColorMask_A = 1,
  ShaderColorMask_B = 2,
  ShaderColorMask_BA = 3,
  ShaderColorMask_G = 4,
  ShaderColorMask_GA = 5,
  ShaderColorMask_GB = 6,
  ShaderColorMask_GBA = 7,
  ShaderColorMask_R = 8,
  ShaderColorMask_RA = 9,
  ShaderColorMask_RB = 10,
  ShaderColorMask_RBA =11,
  ShaderColorMask_RG =12,
  ShaderColorMask_RGA =13,
  ShaderColorMask_RGB =14,
  ShaderColorMask_RGBA=15
}ShaderColorMask;

enum ShaderBlendFactor Fixed Blending weights.

typedef enum ShaderBlendFactor{
  ShaderBlendFactor_Zero = 0,
  ShaderBlendFactor_One = 1,
  ShaderBlendFactor_SrcColor = 2,
  ShaderBlendFactor_OneMinusSrcColor = 3,
  ShaderBlendFactor_SrcAlpha = 4,
  ShaderBlendFactor_OneMinusSrcAlpha = 5,
  ShaderBlendFactor_DstColor = 6,
  ShaderBlendFactor_OneMinusDstColor = 7,
  ShaderBlendFactor_DstAlpha = 8,
  ShaderBlendFactor_OneMinusDstAlpha = 9
}ShaderBlendFactor;

Creation & Destruction

Shader_Create (
const char* vertex_program,
const char* fragment_program,
uint32_t render_queue,
uint32_t texture_count,
bool transparent,
bool write_depth,
bool alpha_to_coverage,
ShaderComparison depth_function,
ShaderCullMode cull_mode,
ShaderColorMask color_mask,
ShaderBlendOp color_blend_op,
ShaderBlendOp alpha_blend_op,
ShaderBlendFactor src_color_factor,
ShaderBlendFactor src_alpha_factor,
ShaderBlendFactor dst_color_factor,
ShaderBlendFactor dst_alpha_factor ) : Shader
Creates a new shader.

Functions

Shader_Exists( Shader shader ) : bool

Shader_RenderQueue( Shader shader ) : uint32_t

Shader_TextureCount( Shader shader ) : uint32_t

Shader_Transparent( Shader shader ) : bool

Shader_WriteDepth( Shader shader ) : bool

Shader_AlphaToCoverage( Shader shader ) : bool

Shader_DepthComparison( Shader shader ) : ShaderComparison

Shader_CullMode( Shader shader ) : ShaderCullMode

Shader_ColorMask( Shader shader ) : ShaderColorMask

Shader_ColorBlendOp( Shader shader ) : ShaderBlendOp

Shader_AlphaBlendOp( Shader shader ) : ShaderBlendOp

Shader_SrcColor( Shader shader ) : ShaderBlendFactor

Shader_SrcAlpha( Shader shader ) : ShaderBlendFactor

Shader_DstColor( Shader shader ) : ShaderBlendFactor

Shader_DstAlpha( Shader shader ) : ShaderBlendFactor




Maintains the state of the current active socket connection. There can only currently be one connection.

Types

struct NetworkEndpoint A network destination.

struct SocketConnection A virtual connection over UDP.

Functions

NetworkEndpoint_CreateIPV4( uint8_t first, uint8_t second ,uint8_t third, uint8_t forth, uint32_t port) : NetworkEndpoint

Socket_GetActive( void ) : SocketConnection
Returns the active socket connection if one exists. Currently there can only be a single active connection.

Socket_Open( NetworkEndpoint address ) : SocketConnection

Socket_Close( SocketConnection connection ) : bool

Socket_Send( SocketConnection connection, uint8_t* data, uint32_t data_size ) : bool

Socket_Receive( SocketConnection connection, uint8_t* buffer, uint32_t buffer_size ) : uint32_t
Returns the number of bytes written to the buffer.




Types

struct Texture A 32 bit handle.

enum TextureFormat

typedef enum TextureFormat{
TextureFormatInvalid = 0,
/* Normal 8 bit formats */
TextureFormatA8Unorm      = 1,
TextureFormatR8Unorm                            = 10,
TextureFormatR8Unorm_sRGB = 11,
TextureFormatR8Snorm      = 12,
TextureFormatR8Uint       = 13,
TextureFormatR8Sint       = 14,
/* Normal 16 bit formats */
TextureFormatR16Unorm     = 20,
TextureFormatR16Snorm     = 22,
TextureFormatR16Uint      = 23,
TextureFormatR16Sint      = 24,
TextureFormatR16Float     = 25,
TextureFormatRG8Unorm                            = 30,
TextureFormatRG8Unorm_sRGB  = 31,
TextureFormatRG8Snorm                            = 32,
TextureFormatRG8Uint                             = 33,
TextureFormatRG8Sint                             = 34,
/* Packed 16 bit formats */
TextureFormatB5G6R5Unorm  = 40,
TextureFormatA1BGR5Unorm  = 41,
TextureFormatABGR4Unorm   = 42,
TextureFormatBGR5A1Unorm  = 43,
/* Normal 32 bit formats */
TextureFormatR32Uint  = 53,
TextureFormatR32Sint  = 54,
TextureFormatR32Float = 55,
TextureFormatRG16Unorm  = 60,
TextureFormatRG16Snorm  = 62,
TextureFormatRG16Uint   = 63,
TextureFormatRG16Sint   = 64,
TextureFormatRG16Float  = 65,
TextureFormatRGBA8Unorm      = 70,
TextureFormatRGBA8Unorm_sRGB = 71,
TextureFormatRGBA8Snorm      = 72,
TextureFormatRGBA8Uint       = 73,
TextureFormatRGBA8Sint       = 74, 
TextureFormatBGRA8Unorm      = 80,
TextureFormatBGRA8Unorm_sRGB = 81,
/* Packed 32 bit formats */
TextureFormatRGB10A2Unorm = 90,
TextureFormatRGB10A2Uint  = 91,
TextureFormatRG11B10Float = 92,
TextureFormatRGB9E5Float = 93,
TextureFormatBGR10A2Unorm   = 94,
TextureFormatBGR10_XR       = 554,
TextureFormatBGR10_XR_sRGB  = 555,
/* Normal 64 bit formats */
TextureFormatRG32Uint  = 103,
TextureFormatRG32Sint  = 104,
TextureFormatRG32Float = 105,
TextureFormatRGBA16Unorm  = 110,
TextureFormatRGBA16Snorm  = 112,
TextureFormatRGBA16Uint   = 113,
TextureFormatRGBA16Sint   = 114,
TextureFormatRGBA16Float  = 115,
TextureFormatBGRA10_XR       = 552,
TextureFormatBGRA10_XR_sRGB  = 553,
/* Normal 128 bit formats */
TextureFormatRGBA32Uint  = 123,
TextureFormatRGBA32Sint  = 124,
TextureFormatRGBA32Float = 125,
/* Compressed formats. */
/* S3TC/DXT */
TextureFormatBC1_RGBA               = 130,
TextureFormatBC1_RGBA_sRGB          = 131,
TextureFormatBC2_RGBA               = 132,
TextureFormatBC2_RGBA_sRGB          = 133,
TextureFormatBC3_RGBA               = 134,
TextureFormatBC3_RGBA_sRGB          = 135,
/* RGTC */
TextureFormatBC4_RUnorm             = 140,
TextureFormatBC4_RSnorm             = 141,
TextureFormatBC5_RGUnorm            = 142,
TextureFormatBC5_RGSnorm            = 143,
/* BPTC */
TextureFormatBC6H_RGBFloat          = 150,
TextureFormatBC6H_RGBUfloat         = 151,
TextureFormatBC7_RGBAUnorm         = 152,
TextureFormatBC7_RGBAUnorm_sRGB     = 153,
/* ASTC */
TextureFormatASTC_4x4_sRGB          = 186,
TextureFormatASTC_5x4_sRGB          = 187,
TextureFormatASTC_5x5_sRGB          = 188,
TextureFormatASTC_6x5_sRGB          = 189,
TextureFormatASTC_6x6_sRGB          = 190,
TextureFormatASTC_8x5_sRGB          = 192,
TextureFormatASTC_8x6_sRGB          = 193,
TextureFormatASTC_8x8_sRGB          = 194,
TextureFormatASTC_10x5_sRGB         = 195,
TextureFormatASTC_10x6_sRGB         = 196,
TextureFormatASTC_10x8_sRGB         = 197,
TextureFormatASTC_10x10_sRGB        = 198,
TextureFormatASTC_12x10_sRGB        = 199,
TextureFormatASTC_12x12_sRGB        = 200,
TextureFormatASTC_4x4_LDR           = 204,
TextureFormatASTC_5x4_LDR           = 205,
TextureFormatASTC_5x5_LDR           = 206,
TextureFormatASTC_6x5_LDR           = 207,
TextureFormatASTC_6x6_LDR           = 208,
TextureFormatASTC_8x5_LDR           = 210,
TextureFormatASTC_8x6_LDR           = 211,
TextureFormatASTC_8x8_LDR           = 212,
TextureFormatASTC_10x5_LDR          = 213,
TextureFormatASTC_10x6_LDR          = 214,
TextureFormatASTC_10x8_LDR          = 215,
TextureFormatASTC_10x10_LDR         = 216,
TextureFormatASTC_12x10_LDR         = 217,
TextureFormatASTC_12x12_LDR         = 218, 
// ASTC HDR (High Dynamic Range) Formats
TextureFormatASTC_4x4_HDR           = 222,
TextureFormatASTC_5x4_HDR           = 223,
TextureFormatASTC_5x5_HDR           = 224,
TextureFormatASTC_6x5_HDR           = 225,
TextureFormatASTC_6x6_HDR           = 226,
TextureFormatASTC_8x5_HDR           = 228,
TextureFormatASTC_8x6_HDR           = 229,
TextureFormatASTC_8x8_HDR           = 230,
TextureFormatASTC_10x5_HDR          = 231,
TextureFormatASTC_10x6_HDR          = 232,
TextureFormatASTC_10x8_HDR          = 233,
TextureFormatASTC_10x10_HDR         = 234,
TextureFormatASTC_12x10_HDR         = 235,
TextureFormatASTC_12x12_HDR         = 236,  
TextureFormatDepth16Unorm  = 250,
TextureFormatDepth32Float  = 252,
/* Stencil */
TextureFormatStencil8        = 253,
TextureFormatDepth32Float_Stencil8  = 260,
TextureFormatX32_Stencil8  = 261,
}TextureFormat;

enum TextureWrap

typedef enum TextureWrap{
TextureWrap_Clamp = 0,
TextureWrap_WrapX = 1,
TextureWrap_WrapY = 2,
TextureWrap_WrapBoth = 3
} TextureWrap;

enum TextureFilter

typedef enum TextureFilter{
TextureFilter_Nearest = 0,
TextureFilter_Bilinear = 1,
TextureFilter_LinearMip = 2,
TextureFilter_Trilinear = 3
} TextureFilter;

enum TextureAniso

typedef enum TextureAniso {
AnisoOff = 1,
Aniso2 = 2,
Aniso3 = 3,
Aniso4 = 4,
Aniso5 = 5,
Aniso6 = 6,
Aniso7 = 7,
Aniso8 = 8,
Aniso9 = 9,
Aniso10 = 10,
Aniso11 = 11,
Aniso12 = 12,
Aniso13= 13,
Aniso14 = 14,
Aniso15 = 15,
Aniso16 = 16,
}TextureAniso;

Creation & Destruction

Texture_Create( void ) : Texture Creates a new empty texture.

Texture_Destroy( Texture texture ) : void
Destroys the texture and associated buffers. The buffer memory may not be available for up to 3 frames.

Functions

Texture_Exists( Texture texture ) : bool
Returns true if the Texture is non-null.

Texture_Width( Texture texture ) : uint32_t

Texture_Height( Texture texture ) : uint32_t

Texture_TexelSize( Texture texture ) : Float4

Texture_AspectRatio( Texture texture ) : float

Texture_InvAspectRatio( Texture texture ) : float

Texture_MipMapCount( Texture texture ) : uint32_t

Texture_WrapMode( Texture texture ) : TextureWrap

Texture_FilterMode( Texture texture ) : TextureFilter

Texture_Anisotropy( Texture texture ) : TextureAniso

Methods

Texture_SetWrapMode( Texture texture, TextureWrap wrap_mode ) : void

Texture_SetFilterMode( Texture texture, TextureFilter filter_mode ) : void

Texture_SetAnisotropy( Texture texture, TextureAniso aniso ) : void




Functions

Time_Time( void ) : double
Returns seconds since application start.

Time_DeltaTime( void ) : float
Returns last frame duration in seconds.

Time_FrameCount( void ) : uint64_t
Returns total number of frames since application start.

Time_RenderBufferId( void ) : uint32_t
Returns the current buffer available to the CPU. In a triple-buffered configuration, this is Time_FrameCount() % 3.




Currently there is a maximum of 65536 UIObjects at any given time. These are statically allocated at startup.

Types

struct UIObject A 32 bit handle.

enum UIInteractionMode

typedef enum UIInteractionMode{
  UIInteractionMode_None,
  UIInteractionMode_Button,
  UIInteractionMode_Drag
}UIInteractionMode;

enum UIObjectState

typedef enum UIObjectState{
  UIObjectStateNull,
  UIObjectStateEnabled,
  UIObjectStateDisabled,
  UIObjectStateDestroyed
}UIObjectState;

enum UIAnchor

typedef enum UIAnchor{
  UIAnchor_UpperLeft,
  UIAnchor_UpperCenter,
  UIAnchor_UpperRight,
  UIAnchor_MiddleLeft,
  UIAnchor_MiddleCenter,
  UIAnchor_MiddleRight,
  UIAnchor_LowerLeft,
  UIAnchor_LowerCenter,
  UIAnchor_LowerRight
}UIAnchor;

Creation & Destruction

UIObject_Create(void) : UIObject Create a new UIObject.

UIObject_CreateInactive(void) : UIObject Create a new UIObject that is disabled.

UIObject_Instantiate( UIObject source ) : UIObject Clone the UIObject at source recursively.

UIObject_Destroy( UIObject object ) : void
Destroy the UIObject, if it exists.

Functions

UIObject_Exists( UIObject object ) : bool
Returns true if the UIObject is non-null.

UIObject_Status( UIObject object ) : UIObjectState Returns the state of this UIObject.

UIObject_ActiveSelf( UIObject object ) : bool
Returns the active status of the object independent of the hierarchy. Returns false if the UIObject is null.

UIObject_ActiveInHierarchy( UIObject object ) : bool
Returns the active status of the object taking the hierarchy into account. Returns false if the UIObject is null.

UIObject_Parent( UIObject object ) : UIObject Returns the object’s parent. If the object is null, a warning is logged and a null object is returned.

UIObject_FirstChild( UIObject object ) : UIObject
Returns the object’s first child. If the object is null, a warning is logged and a null object is returned.

UIObject_NextSibling( UIObject object ) : UIObject
Returns the object’s next sibling. If the object is null, a warning is logged and a null object is returned.

UIObject_PreviousSibling( UIObject object ) : UIObject
Returns the object’s previous sibling. If the object is null, a warning is logged and a null object is returned.

UIObject_InteractiveMode( UIObject object ) : UIInteractionMode
Returns the interaction mode of the object.

UIObject_PixelPosition( UIObject object ) : Float2
Returns the pixel position of this object. If the object is null, a warning is logged and NaN is returned.

UIObject_RelativePosition( UIObject object ) : Float2
Returns the parent relative position of this object. If the object is null, a warning is logged and NaN is returned.

UIObject_WorldPosition( UIObject object ) : Float2
Returns the screen space position of this object, taking pixel and relative positioning into account (sum). If the object is null, a warning is logged and NaN is returned.

UIObject_Anchor( UIObject object ) : UIAnchor

UIObject_PixelSize( UIObject object ) : Float2
Returns the pixel size of this object. If the object is null, a warning is logged and NaN is returned.

UIObject_RelativeSize( UIObject object ) : Float2
Returns the parent relative size of this object. If the object is null, a warning is logged and NaN is returned.

UIObject_WorldSize( UIObject object ) : Float2
Returns the screen space size of this object. If the object is null, a warning is logged and NaN is returned.

UIObject_LocalScale( UIObject object ) : float
Returns the local scale of this object. If the object is null, a warning is logged and NaN is returned.

UIObject_WorldScale( UIObject object ) : float
Returns the total scale of this object. If the object is null, a warning is logged and NaN is returned.

UIObject_LocalDepth( UIObject object ) : int
Returns the local depth of this object. If the object is null, a warning is logged and 0 is returned.

UIObject_WorldDepth( UIObject object ) : int
Returns the total depth of this object. If the object is null, a warning is logged and 0 is returned.

UIObject_LocalOpacity( UIObject object ) : float
Returns the local opacity of this object. If the object is null, a warning is logged and NaN is returned.

UIObject_WorldOpacity( UIObject object ) : float
Returns the total opacity of this object. If the object is null, a warning is logged and NaN is returned.

UIObject_LocalRotation( UIObject object ) : float
Returns the local rotation of this object. If the object is null, a warning is logged and NaN is returned.

UIObject_WorldRotation( UIObject object ) : float
Returns the world rotation of this object. If the object is null, a warning is logged and NaN is returned.

UIObject_HitTest( UIObject object, Float2 point ) : bool

UIObject_LastModifiedFrame( UIObject object ) : uint64_t

UIObject_TransformMatrix( UIObject object) : Float4x4
Returns the matrix transforming points from local to world space. If the object is null, a warning is logged and NaN is returned.

Methods

UIObject_Activate( UIObject object ) : UIObjectState Activates the object if possible and returns the state of the object. This will recursively update children.

UIObject_Deactivate( UIObject object ) : UIObjectState Deactivates the object if possible and returns the state of the object. This will recursively update children.

UIObject_SetParent( UIObject object, UIObject parent ) : bool
Set the object’s parent. Returns true if the operation succeeds. Returns false if either object is null or destroyed, or the operation would create a cycle.

UIObject_MakeRoot( UIObject object ) : bool
Set the object to be a root. This will unparent the object from its parent, if it has one. Returns true if the operation succeeds. Returns false if the object is null or destroyed.

UIObject_SetInteractiveMode( UIObject object, UIInteractionMode interaction_mode ) : bool
Set the object’s interactivity mode. Returns false if the object is null or destroyed.

UIObject_SetPixelPosition( UIObject object, Float2 position ) : bool
Set the object’s local position and update the hierarchy. Returns false if the object is null.

UIObject_SetRelativePosition( UIObject object, Float2 position ) : bool
Set the object’s relative position and update the hierarchy. Returns false if the object is null.

UIObject_SetAnchor( UIObject object, UIAnchor anchor ) : bool

UIObject_SetPixelSize( UIObject object, Float2 size ) : bool
Set the object’s local size and update the hierarchy. Returns false if the object is null.

UIObject_SetRelativeSize( UIObject object, Float2 size ) : bool
Set the object’s relative size and update the hierarchy. Returns false if the object is null.

UIObject_SetLocalScale( UIObject object, float scale ) : bool
Set the object’s local scale and update the hierarchy. Returns false if the object is null.

UIObject_SetLocalDepth( UIObject object, int value ) : bool
Set the object’s local depth and update the hierarchy. Returns false if the object is null.

UIObject_SetLocalOpacity( UIObject object, float value ) : bool
Set the object’s local opacity and update the hierarchy. Returns false if the object is null.

UIObject_SetLocalRotation( UIObject object, float rotation ) : bool
Set the object’s local opacity and update the hierarchy. Returns false if the object is null.




Types

struct UITexture A 32 bit handle.

Creation & Destruction

UITexture_Add( UIObject object ) : UITexture Attaches a uitexture to the object.

UITexture_Destroy( UITexture mesh_renderer ) : void Destroys the uitexture.

Functions

UITexture_Get( UIObject object ) : UITexture Returns the first uitexture attached to the object.

UITexture_UIObject( UITexture mesh_renderer ) : UIObject Return the game object this uitexture is attached to.

UITexture_LayerMask( UITexture mesh_renderer ) : uint32_t Returns the layer mask of this uitexture.

UITexture_SharedMaterial( UITexture mesh_renderer ) : Material Returns the shared material attached to this uitexture.

Methods

UITexture_SetLayerMask( UITexture mesh_renderer, uint32_t mask ) : void
Sets the layer mask.

UITexture_SetMaterial( UITexture mesh_renderer, Material material ) : void
Sets a new material. This will destroy any previous material instance.

UITexture_MaterialInstance( UITexture mesh_renderer) : Material
Returns the material instance. Creates one if none exists.