blob: f9ecf6819a75ec842d4cf848f2ecb718b2aab300 [file]
#ifndef _RIVE_BINDINGS_V1_H_
#define _RIVE_BINDINGS_V1_H_
// Generated by src/wasm/idl/generate.py from bindings.py. Do not edit.
//
// The wasm import contract a script module compiles against: every
// native contact is one of these calls, objects cross as u32
// handles. Any language that can declare wasm imports can target
// this surface directly.
// clang-format off
#include <stdint.h>
#define RIVE_BINDINGS_ABI_VERSION 1
// The import surface below, digested. A wasm module built against
// one contract and run against another links its imports to
// nothing, so a build that carries this can be told apart from one
// that predates a change to it.
#define RIVE_BINDINGS_V1_CONTRACT "8f571598510eeb94"
#define RIVE_BINDING_IMPORT(module, name) \
__attribute__((import_module(module), import_name(name)))
#ifdef __cplusplus
extern "C" {
#endif
typedef struct rive_text_layout_desc_v1
{
uint32_t sizing;
uint32_t overflow;
uint32_t align;
uint32_t wrap;
uint32_t wordBreak;
uint32_t origin;
uint32_t direction;
float maxWidth;
float maxHeight;
float paragraphSpacing;
} rive_text_layout_desc_v1;
typedef struct rive_gpu_texture_desc_v1
{
uint32_t width;
uint32_t height;
uint32_t depthOrArrayLayers;
uint32_t format;
uint32_t textureType;
uint32_t renderTarget;
uint32_t numMipmaps;
uint32_t sampleCount;
} rive_gpu_texture_desc_v1;
typedef struct rive_gpu_texture_upload_v1
{
uint32_t bytesPerRow;
uint32_t rowsPerImage;
uint32_t mipLevel;
uint32_t layer;
uint32_t x;
uint32_t y;
uint32_t z;
uint32_t width;
uint32_t height;
uint32_t depth;
} rive_gpu_texture_upload_v1;
typedef struct rive_gpu_sampler_desc_v1
{
uint32_t minFilter;
uint32_t magFilter;
uint32_t mipmapFilter;
uint32_t wrapU;
uint32_t wrapV;
uint32_t wrapW;
uint32_t compare;
float minLod;
float maxLod;
uint32_t maxAnisotropy;
} rive_gpu_sampler_desc_v1;
typedef struct rive_gpu_texture_view_desc_v1
{
uint32_t dimension;
uint32_t aspect;
uint32_t baseMipLevel;
uint32_t mipCount;
uint32_t baseLayer;
uint32_t layerCount;
} rive_gpu_texture_view_desc_v1;
typedef struct rive_gpu_bind_group_layout_entry_v1
{
uint32_t binding;
uint32_t kind;
uint32_t visibility;
uint32_t hasDynamicOffset;
uint32_t textureViewDim;
uint32_t textureSampleType;
uint32_t textureMultisampled;
uint32_t minBindingSize;
uint32_t nativeSlotVS;
uint32_t nativeSlotFS;
uint32_t nativeSlotCS;
uint32_t samplerNonFiltering;
} rive_gpu_bind_group_layout_entry_v1;
typedef struct rive_gpu_bind_group_ubo_v1
{
uint32_t slot;
uint32_t buffer;
uint32_t offset;
uint32_t size;
} rive_gpu_bind_group_ubo_v1;
typedef struct rive_gpu_bind_group_texture_v1
{
uint32_t slot;
uint32_t view;
} rive_gpu_bind_group_texture_v1;
typedef struct rive_gpu_bind_group_sampler_v1
{
uint32_t slot;
uint32_t sampler;
} rive_gpu_bind_group_sampler_v1;
typedef struct rive_gpu_color_target_v1
{
uint32_t format;
uint32_t blendEnabled;
uint32_t srcColor;
uint32_t dstColor;
uint32_t colorOp;
uint32_t srcAlpha;
uint32_t dstAlpha;
uint32_t alphaOp;
uint32_t writeMask;
} rive_gpu_color_target_v1;
typedef struct rive_gpu_vertex_buffer_layout_v1
{
uint32_t stride;
uint32_t stepMode;
uint32_t attributeCount;
} rive_gpu_vertex_buffer_layout_v1;
typedef struct rive_gpu_vertex_attribute_v1
{
uint32_t format;
uint32_t offset;
uint32_t shaderSlot;
} rive_gpu_vertex_attribute_v1;
typedef struct rive_gpu_pass_color_attachment_v1
{
uint32_t view;
uint32_t resolveTarget;
uint32_t loadOp;
uint32_t storeOp;
float clearR;
float clearG;
float clearB;
float clearA;
} rive_gpu_pass_color_attachment_v1;
typedef struct rive_gpu_pass_desc_v1
{
uint32_t colorCount;
uint32_t depthView;
uint32_t depthLoadOp;
uint32_t depthStoreOp;
float depthClearValue;
uint32_t stencilLoadOp;
uint32_t stencilStoreOp;
uint32_t stencilClearValue;
uint32_t labelSize;
} rive_gpu_pass_desc_v1;
typedef struct rive_gpu_pipeline_desc_v1
{
uint32_t vertexModule;
uint32_t fragmentModule;
uint32_t vertexEntrySize;
uint32_t fragmentEntrySize;
uint32_t colorCount;
uint32_t vertexBufferCount;
uint32_t attributeCount;
uint32_t bindGroupLayoutCount;
uint32_t topology;
uint32_t indexFormat;
uint32_t cullMode;
uint32_t winding;
uint32_t depthFormat;
uint32_t depthCompare;
uint32_t depthWriteEnabled;
uint32_t depthBias;
float depthBiasSlopeScale;
float depthBiasClamp;
uint32_t stencilFrontCompare;
uint32_t stencilFrontFailOp;
uint32_t stencilFrontDepthFailOp;
uint32_t stencilFrontPassOp;
uint32_t stencilBackCompare;
uint32_t stencilBackFailOp;
uint32_t stencilBackDepthFailOp;
uint32_t stencilBackPassOp;
uint32_t stencilReadMask;
uint32_t stencilWriteMask;
uint32_t sampleCount;
} rive_gpu_pipeline_desc_v1;
// rive_rt_v1
RIVE_BINDING_IMPORT("rive_rt_v1", "log")
void rive_rt_log(int32_t level, const char* message, uint32_t length);
RIVE_BINDING_IMPORT("rive_rt_v1", "mark_needs_update")
void rive_rt_mark_needs_update(uint32_t object);
RIVE_BINDING_IMPORT("rive_rt_v1", "budget_exceeded")
void rive_rt_budget_exceeded(uint32_t ms);
RIVE_BINDING_IMPORT("rive_rt_v1", "error")
void rive_rt_error(const char* message, uint32_t length);
RIVE_BINDING_IMPORT("rive_rt_v1", "now")
double rive_rt_now(void);
RIVE_BINDING_IMPORT("rive_rt_v1", "date_now")
double rive_rt_date_now(void);
RIVE_BINDING_IMPORT("rive_rt_v1", "debug_enter")
void rive_rt_debug_enter(uint32_t func, uint32_t line);
RIVE_BINDING_IMPORT("rive_rt_v1", "debug_line")
uint32_t rive_rt_debug_line(uint32_t line);
RIVE_BINDING_IMPORT("rive_rt_v1", "debug_leave")
void rive_rt_debug_leave(void);
RIVE_BINDING_IMPORT("rive_rt_v1", "utc_offset")
uint32_t rive_rt_utc_offset(double epochSeconds);
RIVE_BINDING_IMPORT("rive_rt_v1", "is_dst")
uint32_t rive_rt_is_dst(double epochSeconds);
RIVE_BINDING_IMPORT("rive_rt_v1", "zone_name")
uint32_t rive_rt_zone_name(double epochSeconds, char* buffer, uint32_t capacity);
// rive_data_v1
RIVE_BINDING_IMPORT("rive_data_v1", "view_model")
uint32_t rive_data_view_model(uint32_t object);
RIVE_BINDING_IMPORT("rive_data_v1", "root_view_model")
uint32_t rive_data_root_view_model(uint32_t object);
RIVE_BINDING_IMPORT("rive_data_v1", "global_view_model")
uint32_t rive_data_global_view_model(uint32_t object, const char* name, uint32_t nameLength);
RIVE_BINDING_IMPORT("rive_data_v1", "global_view_model_names")
uint32_t rive_data_global_view_model_names(uint32_t object, char* buffer, uint32_t capacity);
RIVE_BINDING_IMPORT("rive_data_v1", "context")
uint32_t rive_data_context(uint32_t object);
RIVE_BINDING_IMPORT("rive_data_v1", "context_parent")
uint32_t rive_data_context_parent(uint32_t dataContext);
RIVE_BINDING_IMPORT("rive_data_v1", "context_view_model")
uint32_t rive_data_context_view_model(uint32_t dataContext);
RIVE_BINDING_IMPORT("rive_data_v1", "context_release")
void rive_data_context_release(uint32_t dataContext);
RIVE_BINDING_IMPORT("rive_data_v1", "has_view_model")
uint32_t rive_data_has_view_model(const char* name, uint32_t nameLength);
RIVE_BINDING_IMPORT("rive_data_v1", "new_view_model")
uint32_t rive_data_new_view_model(const char* name, uint32_t nameLength, const char* templateName, uint32_t templateLength);
RIVE_BINDING_IMPORT("rive_data_v1", "vmi_release")
void rive_data_vmi_release(uint32_t vmi);
RIVE_BINDING_IMPORT("rive_data_v1", "vmi_number")
uint32_t rive_data_vmi_number(uint32_t vmi, const char* name, uint32_t length);
RIVE_BINDING_IMPORT("rive_data_v1", "vmi_boolean")
uint32_t rive_data_vmi_boolean(uint32_t vmi, const char* name, uint32_t length);
RIVE_BINDING_IMPORT("rive_data_v1", "vmi_string")
uint32_t rive_data_vmi_string(uint32_t vmi, const char* name, uint32_t length);
RIVE_BINDING_IMPORT("rive_data_v1", "vmi_trigger")
uint32_t rive_data_vmi_trigger(uint32_t vmi, const char* name, uint32_t length);
RIVE_BINDING_IMPORT("rive_data_v1", "vmi_color")
uint32_t rive_data_vmi_color(uint32_t vmi, const char* name, uint32_t length);
RIVE_BINDING_IMPORT("rive_data_v1", "vmi_view_model")
uint32_t rive_data_vmi_view_model(uint32_t vmi, const char* name, uint32_t length);
RIVE_BINDING_IMPORT("rive_data_v1", "vmi_property")
uint32_t rive_data_vmi_property(uint32_t vmi, const char* name, uint32_t length, uint32_t* kindOut, uint32_t kindCount);
RIVE_BINDING_IMPORT("rive_data_v1", "vmi_instance")
uint32_t rive_data_vmi_instance(uint32_t vmi, const char* name, uint32_t nameLength);
RIVE_BINDING_IMPORT("rive_data_v1", "vmi_symbol_index")
uint32_t rive_data_vmi_symbol_index(uint32_t vmi);
RIVE_BINDING_IMPORT("rive_data_v1", "vmi_equal")
uint32_t rive_data_vmi_equal(uint32_t a, uint32_t b);
RIVE_BINDING_IMPORT("rive_data_v1", "view_model_get")
uint32_t rive_data_view_model_get(uint32_t property);
RIVE_BINDING_IMPORT("rive_data_v1", "vmi_list")
uint32_t rive_data_vmi_list(uint32_t vmi, const char* name, uint32_t length);
RIVE_BINDING_IMPORT("rive_data_v1", "vmi_enum")
uint32_t rive_data_vmi_enum(uint32_t vmi, const char* name, uint32_t length);
RIVE_BINDING_IMPORT("rive_data_v1", "vmi_image")
uint32_t rive_data_vmi_image(uint32_t vmi, const char* name, uint32_t length);
RIVE_BINDING_IMPORT("rive_data_v1", "vmi_font")
uint32_t rive_data_vmi_font(uint32_t vmi, const char* name, uint32_t length);
RIVE_BINDING_IMPORT("rive_data_v1", "vmi_blob")
uint32_t rive_data_vmi_blob(uint32_t vmi, const char* name, uint32_t length);
RIVE_BINDING_IMPORT("rive_data_v1", "vmi_artboard")
uint32_t rive_data_vmi_artboard(uint32_t vmi, const char* name, uint32_t length);
RIVE_BINDING_IMPORT("rive_data_v1", "image_get")
uint32_t rive_data_image_get(uint32_t property);
RIVE_BINDING_IMPORT("rive_data_v1", "image_set")
void rive_data_image_set(uint32_t property, uint32_t image);
RIVE_BINDING_IMPORT("rive_data_v1", "font_get")
uint32_t rive_data_font_get(uint32_t property);
RIVE_BINDING_IMPORT("rive_data_v1", "font_set")
void rive_data_font_set(uint32_t property, uint32_t font);
RIVE_BINDING_IMPORT("rive_data_v1", "font_release")
void rive_data_font_release(uint32_t font);
RIVE_BINDING_IMPORT("rive_data_v1", "blob_present")
uint32_t rive_data_blob_present(uint32_t property);
RIVE_BINDING_IMPORT("rive_data_v1", "blob_get")
uint32_t rive_data_blob_get(uint32_t property, uint8_t* buffer, uint32_t capacity);
RIVE_BINDING_IMPORT("rive_data_v1", "blob_name")
uint32_t rive_data_blob_name(uint32_t property, char* buffer, uint32_t capacity);
RIVE_BINDING_IMPORT("rive_data_v1", "blob_set")
void rive_data_blob_set(uint32_t property, const uint8_t* bytes, uint32_t byteCount);
RIVE_BINDING_IMPORT("rive_data_v1", "blob_clear")
void rive_data_blob_clear(uint32_t property);
RIVE_BINDING_IMPORT("rive_data_v1", "artboard_get")
uint32_t rive_data_artboard_get(uint32_t property);
RIVE_BINDING_IMPORT("rive_data_v1", "artboard_set")
void rive_data_artboard_set(uint32_t property, uint32_t bindable);
RIVE_BINDING_IMPORT("rive_data_v1", "enum_get")
uint32_t rive_data_enum_get(uint32_t property, char* buffer, uint32_t capacity);
RIVE_BINDING_IMPORT("rive_data_v1", "enum_set")
void rive_data_enum_set(uint32_t property, const char* value, uint32_t length);
RIVE_BINDING_IMPORT("rive_data_v1", "enum_values")
uint32_t rive_data_enum_values(uint32_t property, char* buffer, uint32_t capacity);
RIVE_BINDING_IMPORT("rive_data_v1", "prop_release")
void rive_data_prop_release(uint32_t property);
RIVE_BINDING_IMPORT("rive_data_v1", "trigger_fire")
void rive_data_trigger_fire(uint32_t property);
RIVE_BINDING_IMPORT("rive_data_v1", "list_length")
uint32_t rive_data_list_length(uint32_t property);
RIVE_BINDING_IMPORT("rive_data_v1", "list_push")
void rive_data_list_push(uint32_t property, uint32_t vmi);
RIVE_BINDING_IMPORT("rive_data_v1", "list_pop")
uint32_t rive_data_list_pop(uint32_t property);
RIVE_BINDING_IMPORT("rive_data_v1", "list_shift")
uint32_t rive_data_list_shift(uint32_t property);
RIVE_BINDING_IMPORT("rive_data_v1", "list_clear")
void rive_data_list_clear(uint32_t property);
RIVE_BINDING_IMPORT("rive_data_v1", "list_swap")
void rive_data_list_swap(uint32_t property, uint32_t index1, uint32_t index2);
RIVE_BINDING_IMPORT("rive_data_v1", "list_insert")
void rive_data_list_insert(uint32_t property, uint32_t vmi, uint32_t index);
RIVE_BINDING_IMPORT("rive_data_v1", "list_remove")
void rive_data_list_remove(uint32_t property, uint32_t vmi);
RIVE_BINDING_IMPORT("rive_data_v1", "list_remove_at")
void rive_data_list_remove_at(uint32_t property, uint32_t index);
RIVE_BINDING_IMPORT("rive_data_v1", "list_remove_all_of")
void rive_data_list_remove_all_of(uint32_t property, uint32_t vmi);
RIVE_BINDING_IMPORT("rive_data_v1", "list_get")
uint32_t rive_data_list_get(uint32_t property, uint32_t index);
RIVE_BINDING_IMPORT("rive_data_v1", "view_model_set")
void rive_data_view_model_set(uint32_t property, uint32_t vmi);
RIVE_BINDING_IMPORT("rive_data_v1", "color_get")
uint32_t rive_data_color_get(uint32_t property);
RIVE_BINDING_IMPORT("rive_data_v1", "color_set")
void rive_data_color_set(uint32_t property, uint32_t value);
RIVE_BINDING_IMPORT("rive_data_v1", "number_get")
float rive_data_number_get(uint32_t property);
RIVE_BINDING_IMPORT("rive_data_v1", "number_set")
void rive_data_number_set(uint32_t property, float value);
RIVE_BINDING_IMPORT("rive_data_v1", "boolean_get")
uint32_t rive_data_boolean_get(uint32_t property);
RIVE_BINDING_IMPORT("rive_data_v1", "boolean_set")
void rive_data_boolean_set(uint32_t property, uint32_t value);
RIVE_BINDING_IMPORT("rive_data_v1", "string_get")
uint32_t rive_data_string_get(uint32_t property, char* buffer, uint32_t capacity);
RIVE_BINDING_IMPORT("rive_data_v1", "string_changed")
uint32_t rive_data_string_changed(uint32_t property);
RIVE_BINDING_IMPORT("rive_data_v1", "string_set")
void rive_data_string_set(uint32_t property, const char* value, uint32_t length);
RIVE_BINDING_IMPORT("rive_data_v1", "watch")
void rive_data_watch(uint32_t property, uint32_t token);
RIVE_BINDING_IMPORT("rive_data_v1", "unwatch")
void rive_data_unwatch(uint32_t property);
RIVE_BINDING_IMPORT("rive_data_v1", "convert_result")
void rive_data_convert_result(uint32_t kind, float number, uint32_t booleanValue, uint32_t color, const char* value, uint32_t length);
// rive_artboard_v1
RIVE_BINDING_IMPORT("rive_artboard_v1", "release")
void rive_artboard_release(uint32_t artboard);
RIVE_BINDING_IMPORT("rive_artboard_v1", "advance")
uint32_t rive_artboard_advance(uint32_t artboard, float seconds);
RIVE_BINDING_IMPORT("rive_artboard_v1", "draw")
void rive_artboard_draw(uint32_t artboard, uint32_t renderer);
RIVE_BINDING_IMPORT("rive_artboard_v1", "instance")
uint32_t rive_artboard_instance(uint32_t artboard, uint32_t vmi);
RIVE_BINDING_IMPORT("rive_artboard_v1", "data")
uint32_t rive_artboard_data(uint32_t artboard);
RIVE_BINDING_IMPORT("rive_artboard_v1", "width")
float rive_artboard_width(uint32_t artboard);
RIVE_BINDING_IMPORT("rive_artboard_v1", "height")
float rive_artboard_height(uint32_t artboard);
RIVE_BINDING_IMPORT("rive_artboard_v1", "set_width")
void rive_artboard_set_width(uint32_t artboard, float value);
RIVE_BINDING_IMPORT("rive_artboard_v1", "set_height")
void rive_artboard_set_height(uint32_t artboard, float value);
RIVE_BINDING_IMPORT("rive_artboard_v1", "frame_origin")
uint32_t rive_artboard_frame_origin(uint32_t artboard);
RIVE_BINDING_IMPORT("rive_artboard_v1", "set_frame_origin")
void rive_artboard_set_frame_origin(uint32_t artboard, uint32_t value);
RIVE_BINDING_IMPORT("rive_artboard_v1", "bounds")
void rive_artboard_bounds(uint32_t artboard, float* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_artboard_v1", "pointer_event")
uint32_t rive_artboard_pointer_event(uint32_t artboard, uint32_t kind, uint32_t pointerId, float x, float y);
RIVE_BINDING_IMPORT("rive_artboard_v1", "scroll_event")
uint32_t rive_artboard_scroll_event(uint32_t artboard, uint32_t pointerId, float x, float y, float dx, float dy, uint32_t phase, uint32_t precise, float timeStamp);
RIVE_BINDING_IMPORT("rive_artboard_v1", "gamepad_event")
uint32_t rive_artboard_gamepad_event(uint32_t artboard, const uint8_t* payload, uint32_t byteCount);
RIVE_BINDING_IMPORT("rive_artboard_v1", "animation")
uint32_t rive_artboard_animation(uint32_t artboard, const char* name, uint32_t length);
RIVE_BINDING_IMPORT("rive_artboard_v1", "animation_release")
void rive_artboard_animation_release(uint32_t animation);
RIVE_BINDING_IMPORT("rive_artboard_v1", "animation_duration")
float rive_artboard_animation_duration(uint32_t animation);
RIVE_BINDING_IMPORT("rive_artboard_v1", "animation_advance")
uint32_t rive_artboard_animation_advance(uint32_t animation, float seconds);
RIVE_BINDING_IMPORT("rive_artboard_v1", "animation_set_time")
void rive_artboard_animation_set_time(uint32_t animation, float value, uint32_t mode);
RIVE_BINDING_IMPORT("rive_artboard_v1", "add_to_path")
void rive_artboard_add_to_path(uint32_t artboard, uint32_t path, float xx, float xy, float yx, float yy, float tx, float ty);
RIVE_BINDING_IMPORT("rive_artboard_v1", "node")
uint32_t rive_artboard_node(uint32_t artboard, const char* name, uint32_t length);
RIVE_BINDING_IMPORT("rive_artboard_v1", "node_release")
void rive_artboard_node_release(uint32_t node);
RIVE_BINDING_IMPORT("rive_artboard_v1", "node_transform")
void rive_artboard_node_transform(uint32_t node, float* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_artboard_v1", "node_set")
void rive_artboard_node_set(uint32_t node, uint32_t field, float v0, float v1);
RIVE_BINDING_IMPORT("rive_artboard_v1", "node_world_transform")
void rive_artboard_node_world_transform(uint32_t node, float* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_artboard_v1", "node_set_world_transform")
void rive_artboard_node_set_world_transform(uint32_t node, const float* values, uint32_t floatCount);
RIVE_BINDING_IMPORT("rive_artboard_v1", "node_decompose")
void rive_artboard_node_decompose(uint32_t node, const float* values, uint32_t floatCount);
RIVE_BINDING_IMPORT("rive_artboard_v1", "node_path_verbs")
uint32_t rive_artboard_node_path_verbs(uint32_t node, uint8_t* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_artboard_v1", "node_path_points")
uint32_t rive_artboard_node_path_points(uint32_t node, float* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_artboard_v1", "node_paint")
uint32_t rive_artboard_node_paint(uint32_t node, uint32_t* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_artboard_v1", "node_children")
uint32_t rive_artboard_node_children(uint32_t node, uint32_t* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_artboard_v1", "node_parent")
uint32_t rive_artboard_node_parent(uint32_t node);
RIVE_BINDING_IMPORT("rive_artboard_v1", "property_key")
uint32_t rive_artboard_property_key(uint32_t artboard, const char* name, uint32_t length);
RIVE_BINDING_IMPORT("rive_artboard_v1", "draw_visit")
void rive_artboard_draw_visit(uint32_t artboard, uint32_t renderer);
RIVE_BINDING_IMPORT("rive_artboard_v1", "draw_modulated")
void rive_artboard_draw_modulated(uint32_t artboard, uint32_t renderer, uint32_t key);
RIVE_BINDING_IMPORT("rive_artboard_v1", "drawable_draw")
void rive_artboard_drawable_draw(uint32_t drawable, uint32_t renderer);
RIVE_BINDING_IMPORT("rive_artboard_v1", "drawable_value")
uint32_t rive_artboard_drawable_value(uint32_t drawable, uint32_t key, uint32_t* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_artboard_v1", "drawable_string")
uint32_t rive_artboard_drawable_string(uint32_t drawable, uint32_t key, char* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_artboard_v1", "drawable_properties")
uint32_t rive_artboard_drawable_properties(uint32_t drawable, char* out, uint32_t outCount);
// rive_audio_v1
RIVE_BINDING_IMPORT("rive_audio_v1", "source")
uint32_t rive_audio_source(uint32_t object, const char* name, uint32_t nameLength);
RIVE_BINDING_IMPORT("rive_audio_v1", "source_release")
void rive_audio_source_release(uint32_t source);
RIVE_BINDING_IMPORT("rive_audio_v1", "source_duration")
float rive_audio_source_duration(uint32_t source);
RIVE_BINDING_IMPORT("rive_audio_v1", "source_sample_rate")
uint32_t rive_audio_source_sample_rate(uint32_t source);
RIVE_BINDING_IMPORT("rive_audio_v1", "source_channels")
uint32_t rive_audio_source_channels(uint32_t source);
RIVE_BINDING_IMPORT("rive_audio_v1", "source_to_blob")
uint32_t rive_audio_source_to_blob(uint32_t source, uint32_t sampleRate, uint32_t channels);
RIVE_BINDING_IMPORT("rive_audio_v1", "stream")
uint32_t rive_audio_stream(uint32_t source, uint32_t sampleRate, uint32_t channels, uint32_t chunkFrames, uint32_t bufferFrames);
RIVE_BINDING_IMPORT("rive_audio_v1", "stream_ring")
uint32_t rive_audio_stream_ring(uint32_t stream);
RIVE_BINDING_IMPORT("rive_audio_v1", "stream_seeks")
uint32_t rive_audio_stream_seeks(uint32_t stream);
RIVE_BINDING_IMPORT("rive_audio_v1", "stream_channels")
uint32_t rive_audio_stream_channels(uint32_t stream);
RIVE_BINDING_IMPORT("rive_audio_v1", "stream_sample_rate")
uint32_t rive_audio_stream_sample_rate(uint32_t stream);
RIVE_BINDING_IMPORT("rive_audio_v1", "stream_seek_frame")
uint32_t rive_audio_stream_seek_frame(uint32_t stream, double frame);
RIVE_BINDING_IMPORT("rive_audio_v1", "stream_set_loop")
void rive_audio_stream_set_loop(uint32_t stream, uint32_t loop);
RIVE_BINDING_IMPORT("rive_audio_v1", "stream_ended")
uint32_t rive_audio_stream_ended(uint32_t stream);
RIVE_BINDING_IMPORT("rive_audio_v1", "stream_release")
void rive_audio_stream_release(uint32_t stream);
RIVE_BINDING_IMPORT("rive_audio_v1", "play")
uint32_t rive_audio_play(uint32_t source);
RIVE_BINDING_IMPORT("rive_audio_v1", "play_at_time")
uint32_t rive_audio_play_at_time(uint32_t source, float seconds);
RIVE_BINDING_IMPORT("rive_audio_v1", "play_in_time")
uint32_t rive_audio_play_in_time(uint32_t source, float seconds);
RIVE_BINDING_IMPORT("rive_audio_v1", "play_at_frame")
uint32_t rive_audio_play_at_frame(uint32_t source, double frame);
RIVE_BINDING_IMPORT("rive_audio_v1", "play_in_frame")
uint32_t rive_audio_play_in_frame(uint32_t source, double frame);
RIVE_BINDING_IMPORT("rive_audio_v1", "time")
float rive_audio_time(void);
RIVE_BINDING_IMPORT("rive_audio_v1", "time_frame")
double rive_audio_time_frame(void);
RIVE_BINDING_IMPORT("rive_audio_v1", "sample_rate")
uint32_t rive_audio_sample_rate(void);
RIVE_BINDING_IMPORT("rive_audio_v1", "processor_sample_rate")
uint32_t rive_audio_processor_sample_rate(void);
RIVE_BINDING_IMPORT("rive_audio_v1", "processor_channels")
uint32_t rive_audio_processor_channels(void);
RIVE_BINDING_IMPORT("rive_audio_v1", "sound_release")
void rive_audio_sound_release(uint32_t sound);
RIVE_BINDING_IMPORT("rive_audio_v1", "sound_play")
void rive_audio_sound_play(uint32_t sound);
RIVE_BINDING_IMPORT("rive_audio_v1", "sound_pause")
void rive_audio_sound_pause(uint32_t sound);
RIVE_BINDING_IMPORT("rive_audio_v1", "sound_resume")
void rive_audio_sound_resume(uint32_t sound);
RIVE_BINDING_IMPORT("rive_audio_v1", "sound_stop")
void rive_audio_sound_stop(uint32_t sound, uint32_t fadeFrames);
RIVE_BINDING_IMPORT("rive_audio_v1", "sound_seek")
uint32_t rive_audio_sound_seek(uint32_t sound, float seconds);
RIVE_BINDING_IMPORT("rive_audio_v1", "sound_seek_frame")
uint32_t rive_audio_sound_seek_frame(uint32_t sound, double frame);
RIVE_BINDING_IMPORT("rive_audio_v1", "sound_completed")
uint32_t rive_audio_sound_completed(uint32_t sound);
RIVE_BINDING_IMPORT("rive_audio_v1", "sound_time")
float rive_audio_sound_time(uint32_t sound);
RIVE_BINDING_IMPORT("rive_audio_v1", "sound_time_frame")
double rive_audio_sound_time_frame(uint32_t sound);
RIVE_BINDING_IMPORT("rive_audio_v1", "sound_volume")
float rive_audio_sound_volume(uint32_t sound);
RIVE_BINDING_IMPORT("rive_audio_v1", "sound_set_volume")
void rive_audio_sound_set_volume(uint32_t sound, float value);
// rive_path_v1
RIVE_BINDING_IMPORT("rive_path_v1", "new")
uint32_t rive_path_new(void);
RIVE_BINDING_IMPORT("rive_path_v1", "update")
void rive_path_update(uint32_t path, const uint8_t* verbs, uint32_t verbCount, const float* points, uint32_t floatCount, uint32_t fillRule);
RIVE_BINDING_IMPORT("rive_path_v1", "release")
void rive_path_release(uint32_t path);
RIVE_BINDING_IMPORT("rive_path_v1", "add")
void rive_path_add(uint32_t path, uint32_t other, float xx, float xy, float yx, float yy, float tx, float ty);
RIVE_BINDING_IMPORT("rive_path_v1", "verbs")
uint32_t rive_path_verbs(uint32_t path, uint8_t* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_path_v1", "points")
uint32_t rive_path_points(uint32_t path, float* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_path_v1", "effect_result")
void rive_path_effect_result(const uint8_t* verbs, uint32_t verbCount, const float* points, uint32_t floatCount);
// rive_measure_v1
RIVE_BINDING_IMPORT("rive_measure_v1", "path_new")
uint32_t rive_measure_path_new(const uint8_t* verbs, uint32_t verbCount, const float* points, uint32_t floatCount);
RIVE_BINDING_IMPORT("rive_measure_v1", "contours_new")
uint32_t rive_measure_contours_new(const uint8_t* verbs, uint32_t verbCount, const float* points, uint32_t floatCount);
RIVE_BINDING_IMPORT("rive_measure_v1", "contour_next")
uint32_t rive_measure_contour_next(uint32_t measure);
RIVE_BINDING_IMPORT("rive_measure_v1", "length")
float rive_measure_length(uint32_t measure);
RIVE_BINDING_IMPORT("rive_measure_v1", "is_closed")
uint32_t rive_measure_is_closed(uint32_t measure);
RIVE_BINDING_IMPORT("rive_measure_v1", "pos_tan")
void rive_measure_pos_tan(uint32_t measure, float distance, float* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_measure_v1", "warp")
void rive_measure_warp(uint32_t measure, float x, float y, float* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_measure_v1", "extract")
uint32_t rive_measure_extract(uint32_t measure, float startDistance, float endDistance, uint32_t startWithMove);
RIVE_BINDING_IMPORT("rive_measure_v1", "extract_read")
uint32_t rive_measure_extract_read(uint32_t measure, uint8_t* verbs, uint32_t verbCount, float* points, uint32_t floatCount);
RIVE_BINDING_IMPORT("rive_measure_v1", "release")
void rive_measure_release(uint32_t measure);
// rive_paint_v1
RIVE_BINDING_IMPORT("rive_paint_v1", "new")
uint32_t rive_paint_new(void);
RIVE_BINDING_IMPORT("rive_paint_v1", "release")
void rive_paint_release(uint32_t paint);
RIVE_BINDING_IMPORT("rive_paint_v1", "style")
void rive_paint_style(uint32_t paint, uint32_t value);
RIVE_BINDING_IMPORT("rive_paint_v1", "color")
void rive_paint_color(uint32_t paint, uint32_t value);
RIVE_BINDING_IMPORT("rive_paint_v1", "thickness")
void rive_paint_thickness(uint32_t paint, float value);
RIVE_BINDING_IMPORT("rive_paint_v1", "join")
void rive_paint_join(uint32_t paint, uint32_t value);
RIVE_BINDING_IMPORT("rive_paint_v1", "cap")
void rive_paint_cap(uint32_t paint, uint32_t value);
RIVE_BINDING_IMPORT("rive_paint_v1", "blend_mode")
void rive_paint_blend_mode(uint32_t paint, uint32_t value);
RIVE_BINDING_IMPORT("rive_paint_v1", "feather")
void rive_paint_feather(uint32_t paint, float value);
RIVE_BINDING_IMPORT("rive_paint_v1", "shader")
void rive_paint_shader(uint32_t paint, uint32_t shader);
RIVE_BINDING_IMPORT("rive_paint_v1", "shader_transform")
void rive_paint_shader_transform(uint32_t paint, const float* values, uint32_t floatCount);
// rive_canvas_v1
RIVE_BINDING_IMPORT("rive_canvas_v1", "new")
uint32_t rive_canvas_new(uint32_t width, uint32_t height);
RIVE_BINDING_IMPORT("rive_canvas_v1", "release")
void rive_canvas_release(uint32_t canvas);
RIVE_BINDING_IMPORT("rive_canvas_v1", "width")
uint32_t rive_canvas_width(uint32_t canvas);
RIVE_BINDING_IMPORT("rive_canvas_v1", "height")
uint32_t rive_canvas_height(uint32_t canvas);
RIVE_BINDING_IMPORT("rive_canvas_v1", "resize")
uint32_t rive_canvas_resize(uint32_t canvas, uint32_t width, uint32_t height);
RIVE_BINDING_IMPORT("rive_canvas_v1", "image")
uint32_t rive_canvas_image(uint32_t canvas);
RIVE_BINDING_IMPORT("rive_canvas_v1", "begin_frame")
uint32_t rive_canvas_begin_frame(uint32_t canvas, uint32_t clearColor);
RIVE_BINDING_IMPORT("rive_canvas_v1", "end_frame")
void rive_canvas_end_frame(uint32_t canvas);
// rive_gpu_v1
RIVE_BINDING_IMPORT("rive_gpu_v1", "features")
uint32_t rive_gpu_features(uint32_t* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "canvas_new")
uint32_t rive_gpu_canvas_new(uint32_t width, uint32_t height);
RIVE_BINDING_IMPORT("rive_gpu_v1", "canvas_release")
void rive_gpu_canvas_release(uint32_t canvas);
RIVE_BINDING_IMPORT("rive_gpu_v1", "canvas_color_view")
uint32_t rive_gpu_canvas_color_view(uint32_t canvas, uint32_t* props, uint32_t propCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "canvas_image")
uint32_t rive_gpu_canvas_image(uint32_t canvas);
RIVE_BINDING_IMPORT("rive_gpu_v1", "canvas_resize")
uint32_t rive_gpu_canvas_resize(uint32_t canvas, uint32_t width, uint32_t height, uint32_t* props, uint32_t propCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "target_view")
uint32_t rive_gpu_target_view(uint32_t current, uint32_t* props, uint32_t propCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "pass_begin")
uint32_t rive_gpu_pass_begin(const rive_gpu_pass_desc_v1* desc, uint32_t descByteCount, const uint8_t* blob, uint32_t blobCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "pass_set_pipeline")
void rive_gpu_pass_set_pipeline(uint32_t pass, uint32_t pipeline);
RIVE_BINDING_IMPORT("rive_gpu_v1", "pass_set_vertex_buffer")
void rive_gpu_pass_set_vertex_buffer(uint32_t pass, uint32_t slot, uint32_t buffer, uint32_t offset);
RIVE_BINDING_IMPORT("rive_gpu_v1", "pass_set_index_buffer")
void rive_gpu_pass_set_index_buffer(uint32_t pass, uint32_t buffer, uint32_t indexFormat, uint32_t offset);
RIVE_BINDING_IMPORT("rive_gpu_v1", "pass_set_bind_group")
void rive_gpu_pass_set_bind_group(uint32_t pass, uint32_t groupIndex, uint32_t bindGroup, const uint32_t* dynamicOffsets, uint32_t dynamicOffsetByteCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "pass_set_viewport")
void rive_gpu_pass_set_viewport(uint32_t pass, float x, float y, float width, float height, float minDepth, float maxDepth);
RIVE_BINDING_IMPORT("rive_gpu_v1", "pass_set_scissor")
void rive_gpu_pass_set_scissor(uint32_t pass, uint32_t x, uint32_t y, uint32_t width, uint32_t height);
RIVE_BINDING_IMPORT("rive_gpu_v1", "pass_set_stencil_reference")
void rive_gpu_pass_set_stencil_reference(uint32_t pass, uint32_t ref);
RIVE_BINDING_IMPORT("rive_gpu_v1", "pass_set_blend_color")
void rive_gpu_pass_set_blend_color(uint32_t pass, float r, float g, float b, float a);
RIVE_BINDING_IMPORT("rive_gpu_v1", "pass_draw")
void rive_gpu_pass_draw(uint32_t pass, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
RIVE_BINDING_IMPORT("rive_gpu_v1", "pass_draw_indexed")
void rive_gpu_pass_draw_indexed(uint32_t pass, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance);
RIVE_BINDING_IMPORT("rive_gpu_v1", "pass_finish")
void rive_gpu_pass_finish(uint32_t pass);
RIVE_BINDING_IMPORT("rive_gpu_v1", "pass_release")
void rive_gpu_pass_release(uint32_t pass);
RIVE_BINDING_IMPORT("rive_gpu_v1", "image_view")
uint32_t rive_gpu_image_view(uint32_t image, uint32_t width, uint32_t height);
RIVE_BINDING_IMPORT("rive_gpu_v1", "buffer_new")
uint32_t rive_gpu_buffer_new(uint32_t usage, uint32_t sizeInBytes, uint32_t immutable, const uint8_t* data, uint32_t dataCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "buffer_update")
void rive_gpu_buffer_update(uint32_t buffer, uint32_t dstOffset, const uint8_t* data, uint32_t dataCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "buffer_update_blob")
void rive_gpu_buffer_update_blob(uint32_t buffer, uint32_t dstOffset, uint32_t blob, uint32_t srcOffset, uint32_t byteCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "buffer_new_blob")
uint32_t rive_gpu_buffer_new_blob(uint32_t usage, uint32_t immutable, uint32_t blob, uint32_t srcOffset, uint32_t byteCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "buffer_release")
void rive_gpu_buffer_release(uint32_t buffer);
RIVE_BINDING_IMPORT("rive_gpu_v1", "texture_new")
uint32_t rive_gpu_texture_new(const rive_gpu_texture_desc_v1* desc, uint32_t descByteCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "texture_upload")
void rive_gpu_texture_upload(uint32_t texture, const rive_gpu_texture_upload_v1* region, uint32_t regionByteCount, const uint8_t* data, uint32_t dataCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "texture_release")
void rive_gpu_texture_release(uint32_t texture);
RIVE_BINDING_IMPORT("rive_gpu_v1", "sampler_new")
uint32_t rive_gpu_sampler_new(const rive_gpu_sampler_desc_v1* desc, uint32_t descByteCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "sampler_release")
void rive_gpu_sampler_release(uint32_t sampler);
RIVE_BINDING_IMPORT("rive_gpu_v1", "texture_view_new")
uint32_t rive_gpu_texture_view_new(uint32_t texture, const rive_gpu_texture_view_desc_v1* desc, uint32_t descByteCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "texture_view_release")
void rive_gpu_texture_view_release(uint32_t view);
RIVE_BINDING_IMPORT("rive_gpu_v1", "shader_target")
uint32_t rive_gpu_shader_target(void);
RIVE_BINDING_IMPORT("rive_gpu_v1", "shader_asset_bytes")
uint32_t rive_gpu_shader_asset_bytes(uint32_t object, const char* name, uint32_t nameLength, uint8_t* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "shader_asset_id")
uint32_t rive_gpu_shader_asset_id(uint32_t object, const char* name, uint32_t nameLength);
RIVE_BINDING_IMPORT("rive_gpu_v1", "shader_module_from_asset")
uint32_t rive_gpu_shader_module_from_asset(uint32_t object, const char* name, uint32_t nameLength, uint32_t entry);
RIVE_BINDING_IMPORT("rive_gpu_v1", "shader_module_from_rstb")
uint32_t rive_gpu_shader_module_from_rstb(const uint8_t* rstb, uint32_t rstbCount, uint32_t assetId, uint32_t entry);
RIVE_BINDING_IMPORT("rive_gpu_v1", "shader_module_release")
void rive_gpu_shader_module_release(uint32_t shaderModule);
RIVE_BINDING_IMPORT("rive_gpu_v1", "bind_group_layout_new")
uint32_t rive_gpu_bind_group_layout_new(uint32_t groupIndex, const rive_gpu_bind_group_layout_entry_v1* entries, uint32_t entryByteCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "bind_group_layout_release")
void rive_gpu_bind_group_layout_release(uint32_t layout);
RIVE_BINDING_IMPORT("rive_gpu_v1", "bind_group_layout_from_shader")
uint32_t rive_gpu_bind_group_layout_from_shader(uint32_t shaderModule, uint32_t groupIndex, const uint32_t* dynamicUBOs, uint32_t dynamicUBOCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "bind_group_layout_from_shaders")
uint32_t rive_gpu_bind_group_layout_from_shaders(uint32_t vertexModule, uint32_t fragmentModule, uint32_t groupIndex, const uint32_t* dynamicUBOs, uint32_t dynamicUBOCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "bind_group_layout_from_entries")
uint32_t rive_gpu_bind_group_layout_from_entries(uint32_t vertexModule, const char* vertexEntry, uint32_t vertexEntryLength, uint32_t fragmentModule, const char* fragmentEntry, uint32_t fragmentEntryLength, uint32_t groupIndex);
RIVE_BINDING_IMPORT("rive_gpu_v1", "bind_group_new")
uint32_t rive_gpu_bind_group_new(uint32_t layout, const rive_gpu_bind_group_ubo_v1* ubos, uint32_t uboByteCount, const rive_gpu_bind_group_texture_v1* textures, uint32_t textureByteCount, const rive_gpu_bind_group_sampler_v1* samplers, uint32_t samplerByteCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "bind_group_release")
void rive_gpu_bind_group_release(uint32_t bindGroup);
RIVE_BINDING_IMPORT("rive_gpu_v1", "pipeline_new")
uint32_t rive_gpu_pipeline_new(const rive_gpu_pipeline_desc_v1* desc, uint32_t descByteCount, const uint8_t* blob, uint32_t blobCount);
RIVE_BINDING_IMPORT("rive_gpu_v1", "pipeline_release")
void rive_gpu_pipeline_release(uint32_t pipeline);
// rive_mat4_v1
RIVE_BINDING_IMPORT("rive_mat4_v1", "multiply")
void rive_mat4_multiply(uint8_t* out, uint32_t outBytes, const uint8_t* a, uint32_t aBytes, const uint8_t* b, uint32_t bBytes);
RIVE_BINDING_IMPORT("rive_mat4_v1", "invert")
uint32_t rive_mat4_invert(uint8_t* out, uint32_t outBytes, const uint8_t* src, uint32_t srcBytes);
// rive_buffer_v1
RIVE_BINDING_IMPORT("rive_buffer_v1", "new")
uint32_t rive_buffer_new(uint32_t bufferType, uint32_t flags, uint32_t sizeInBytes);
RIVE_BINDING_IMPORT("rive_buffer_v1", "update")
void rive_buffer_update(uint32_t buffer, const uint8_t* bytes, uint32_t byteCount);
RIVE_BINDING_IMPORT("rive_buffer_v1", "release")
void rive_buffer_release(uint32_t buffer);
// rive_mesh_instances_v1
RIVE_BINDING_IMPORT("rive_mesh_instances_v1", "new")
uint32_t rive_mesh_instances_new(uint32_t count);
RIVE_BINDING_IMPORT("rive_mesh_instances_v1", "resize")
void rive_mesh_instances_resize(uint32_t instances, uint32_t count);
RIVE_BINDING_IMPORT("rive_mesh_instances_v1", "update")
void rive_mesh_instances_update(uint32_t instances, uint32_t first, const uint8_t* bytes, uint32_t byteCount);
RIVE_BINDING_IMPORT("rive_mesh_instances_v1", "release")
void rive_mesh_instances_release(uint32_t instances);
// rive_blob_v1
RIVE_BINDING_IMPORT("rive_blob_v1", "asset_bytes")
uint32_t rive_blob_asset_bytes(uint32_t object, const char* name, uint32_t nameLength, uint8_t* out, uint32_t outCount);
// rive_image_v1
RIVE_BINDING_IMPORT("rive_image_v1", "from_asset")
uint32_t rive_image_from_asset(uint32_t object, const char* name, uint32_t length);
RIVE_BINDING_IMPORT("rive_image_v1", "width")
uint32_t rive_image_width(uint32_t image);
RIVE_BINDING_IMPORT("rive_image_v1", "height")
uint32_t rive_image_height(uint32_t image);
RIVE_BINDING_IMPORT("rive_image_v1", "release")
void rive_image_release(uint32_t image);
RIVE_BINDING_IMPORT("rive_image_v1", "decode")
uint32_t rive_image_decode(const uint8_t* bytes, uint32_t byteCount, uint32_t token);
RIVE_BINDING_IMPORT("rive_image_v1", "decode_cancel")
void rive_image_decode_cancel(uint32_t token);
// rive_font_v1
RIVE_BINDING_IMPORT("rive_font_v1", "from_asset")
uint32_t rive_font_from_asset(uint32_t object, const char* name, uint32_t length);
RIVE_BINDING_IMPORT("rive_font_v1", "decode")
uint32_t rive_font_decode(const uint8_t* bytes, uint32_t byteCount);
RIVE_BINDING_IMPORT("rive_font_v1", "release")
void rive_font_release(uint32_t font);
RIVE_BINDING_IMPORT("rive_font_v1", "metrics")
void rive_font_metrics(uint32_t font, float* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_font_v1", "weight")
uint32_t rive_font_weight(uint32_t font);
RIVE_BINDING_IMPORT("rive_font_v1", "is_italic")
uint32_t rive_font_is_italic(uint32_t font);
RIVE_BINDING_IMPORT("rive_font_v1", "axis_count")
uint32_t rive_font_axis_count(uint32_t font);
RIVE_BINDING_IMPORT("rive_font_v1", "axis")
void rive_font_axis(uint32_t font, uint32_t index, float* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_font_v1", "axis_value")
float rive_font_axis_value(uint32_t font, uint32_t tag);
RIVE_BINDING_IMPORT("rive_font_v1", "features")
uint32_t rive_font_features(uint32_t font, uint32_t* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_font_v1", "has_glyph")
uint32_t rive_font_has_glyph(uint32_t font, uint32_t codepoint);
RIVE_BINDING_IMPORT("rive_font_v1", "with_options")
uint32_t rive_font_with_options(uint32_t font, const uint32_t* coords, uint32_t coordCount, const uint32_t* features, uint32_t featureCount);
RIVE_BINDING_IMPORT("rive_font_v1", "glyph_verbs")
uint32_t rive_font_glyph_verbs(uint32_t font, uint32_t glyph, uint8_t* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_font_v1", "glyph_points")
uint32_t rive_font_glyph_points(uint32_t font, uint32_t glyph, float* out, uint32_t outCount);
// rive_text_v1
RIVE_BINDING_IMPORT("rive_text_v1", "new")
uint32_t rive_text_new(void);
RIVE_BINDING_IMPORT("rive_text_v1", "release")
void rive_text_release(uint32_t text);
RIVE_BINDING_IMPORT("rive_text_v1", "append")
void rive_text_append(uint32_t text, const char* chars, uint32_t length, uint32_t font, uint32_t paint, float size, float lineHeight, float letterSpacing, uint32_t foreground);
RIVE_BINDING_IMPORT("rive_text_v1", "clear")
void rive_text_clear(uint32_t text);
RIVE_BINDING_IMPORT("rive_text_v1", "layout")
void rive_text_layout(uint32_t text, const rive_text_layout_desc_v1* desc, uint32_t descByteCount);
RIVE_BINDING_IMPORT("rive_text_v1", "draw")
void rive_text_draw(uint32_t text, uint32_t renderer, uint32_t paint);
RIVE_BINDING_IMPORT("rive_text_v1", "bounds")
void rive_text_bounds(uint32_t text, float* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_text_v1", "length")
uint32_t rive_text_length(uint32_t text);
RIVE_BINDING_IMPORT("rive_text_v1", "lines")
uint32_t rive_text_lines(uint32_t text, uint32_t* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_text_v1", "runs")
uint32_t rive_text_runs(uint32_t text, uint32_t* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_text_v1", "glyphs")
uint32_t rive_text_glyphs(uint32_t text, uint32_t* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_text_v1", "hit_test")
uint32_t rive_text_hit_test(uint32_t text, float x, float y);
RIVE_BINDING_IMPORT("rive_text_v1", "caret")
uint32_t rive_text_caret(uint32_t text, uint32_t index, float* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_text_v1", "selection_rects")
uint32_t rive_text_selection_rects(uint32_t text, uint32_t from, uint32_t to, float* out, uint32_t outCount);
// rive_shader_v1
RIVE_BINDING_IMPORT("rive_shader_v1", "linear")
uint32_t rive_shader_linear(float sx, float sy, float ex, float ey, const uint32_t* colors, const float* stops, uint32_t count);
RIVE_BINDING_IMPORT("rive_shader_v1", "radial")
uint32_t rive_shader_radial(float cx, float cy, float radius, const uint32_t* colors, const float* stops, uint32_t count);
RIVE_BINDING_IMPORT("rive_shader_v1", "release")
void rive_shader_release(uint32_t shader);
// rive_test_v1
RIVE_BINDING_IMPORT("rive_test_v1", "blob")
uint32_t rive_test_blob(const char* name, uint32_t nameLength, uint8_t* out, uint32_t outCount);
// rive_transition_v1
RIVE_BINDING_IMPORT("rive_transition_v1", "child_draw")
void rive_transition_child_draw(uint32_t child, uint32_t renderer);
RIVE_BINDING_IMPORT("rive_transition_v1", "child_width")
float rive_transition_child_width(uint32_t child);
RIVE_BINDING_IMPORT("rive_transition_v1", "child_height")
float rive_transition_child_height(uint32_t child);
// rive_renderer_v1
RIVE_BINDING_IMPORT("rive_renderer_v1", "save")
void rive_renderer_save(uint32_t renderer);
RIVE_BINDING_IMPORT("rive_renderer_v1", "restore")
void rive_renderer_restore(uint32_t renderer);
RIVE_BINDING_IMPORT("rive_renderer_v1", "transform")
void rive_renderer_transform(uint32_t renderer, float xx, float xy, float yx, float yy, float tx, float ty);
RIVE_BINDING_IMPORT("rive_renderer_v1", "draw_path")
void rive_renderer_draw_path(uint32_t renderer, uint32_t path, uint32_t paint);
RIVE_BINDING_IMPORT("rive_renderer_v1", "clip_path")
void rive_renderer_clip_path(uint32_t renderer, uint32_t path);
RIVE_BINDING_IMPORT("rive_renderer_v1", "modulate_opacity")
void rive_renderer_modulate_opacity(uint32_t renderer, float opacity);
RIVE_BINDING_IMPORT("rive_renderer_v1", "modulate_color")
void rive_renderer_modulate_color(uint32_t renderer, uint32_t color, uint32_t replace);
RIVE_BINDING_IMPORT("rive_renderer_v1", "draw_image")
void rive_renderer_draw_image(uint32_t renderer, uint32_t image, uint32_t sampler, uint32_t blend, float opacity);
RIVE_BINDING_IMPORT("rive_renderer_v1", "draw_image_mesh")
void rive_renderer_draw_image_mesh(uint32_t renderer, uint32_t image, uint32_t sampler, uint32_t vertexBuffer, uint32_t uvBuffer, uint32_t indexBuffer, uint32_t blend, float opacity);
RIVE_BINDING_IMPORT("rive_renderer_v1", "draw_image_mesh_instanced")
void rive_renderer_draw_image_mesh_instanced(uint32_t renderer, uint32_t image, uint32_t sampler, uint32_t vertexBuffer, uint32_t uvBuffer, uint32_t indexBuffer, uint32_t instances);
// rive_net_v1
RIVE_BINDING_IMPORT("rive_net_v1", "fetch")
uint32_t rive_net_fetch(const uint8_t* request, uint32_t requestCount, uint32_t token);
RIVE_BINDING_IMPORT("rive_net_v1", "fetch_cancel")
void rive_net_fetch_cancel(uint32_t token);
// rive_file_v1
RIVE_BINDING_IMPORT("rive_file_v1", "decode")
uint32_t rive_file_decode(const uint8_t* bytes, uint32_t byteCount, uint32_t* statusOut, uint32_t statusCount);
RIVE_BINDING_IMPORT("rive_file_v1", "release")
void rive_file_release(uint32_t file);
RIVE_BINDING_IMPORT("rive_file_v1", "artboard_count")
uint32_t rive_file_artboard_count(uint32_t file);
RIVE_BINDING_IMPORT("rive_file_v1", "artboard_name")
uint32_t rive_file_artboard_name(uint32_t file, uint32_t index, char* buffer, uint32_t capacity);
RIVE_BINDING_IMPORT("rive_file_v1", "bindable")
uint32_t rive_file_bindable(uint32_t file, const char* name, uint32_t nameLength, uint32_t useDefault);
RIVE_BINDING_IMPORT("rive_file_v1", "bindable_release")
void rive_file_bindable_release(uint32_t bindable);
RIVE_BINDING_IMPORT("rive_file_v1", "bindable_name")
uint32_t rive_file_bindable_name(uint32_t bindable, char* buffer, uint32_t capacity);
RIVE_BINDING_IMPORT("rive_file_v1", "bindable_data")
uint32_t rive_file_bindable_data(uint32_t bindable);
RIVE_BINDING_IMPORT("rive_file_v1", "bindable_equal")
uint32_t rive_file_bindable_equal(uint32_t a, uint32_t b);
// rive_lanes_v1
RIVE_BINDING_IMPORT("rive_lanes_v1", "start")
uint32_t rive_lanes_start(uint32_t kind, uint32_t entry, const uint8_t* input, uint32_t inputByteCount, const uint32_t* holds, uint32_t holdCount);
RIVE_BINDING_IMPORT("rive_lanes_v1", "state")
uint32_t rive_lanes_state(uint32_t lane);
RIVE_BINDING_IMPORT("rive_lanes_v1", "failed")
uint32_t rive_lanes_failed(uint32_t lane, char* buffer, uint32_t capacity);
RIVE_BINDING_IMPORT("rive_lanes_v1", "stop")
void rive_lanes_stop(uint32_t lane);
RIVE_BINDING_IMPORT("rive_lanes_v1", "release")
void rive_lanes_release(uint32_t lane);
RIVE_BINDING_IMPORT("rive_lanes_v1", "result")
uint32_t rive_lanes_result(uint32_t lane, uint8_t* out, uint32_t outCount);
RIVE_BINDING_IMPORT("rive_lanes_v1", "watch")
uint32_t rive_lanes_watch(uint32_t lane);
RIVE_BINDING_IMPORT("rive_lanes_v1", "wait")
uint32_t rive_lanes_wait(uint32_t signal, double after, double timeoutSeconds);
RIVE_BINDING_IMPORT("rive_lanes_v1", "cancel_wait")
void rive_lanes_cancel_wait(uint32_t token);
RIVE_BINDING_IMPORT("rive_lanes_v1", "wait_within")
double rive_lanes_wait_within(uint32_t signal, double after, double timeoutSeconds);
// rive_jobs_v1
RIVE_BINDING_IMPORT("rive_jobs_v1", "threads")
uint32_t rive_jobs_threads(void);
RIVE_BINDING_IMPORT("rive_jobs_v1", "join")
uint32_t rive_jobs_join(uint32_t job, double timeoutSeconds);
RIVE_BINDING_IMPORT("rive_jobs_v1", "join_any")
uint32_t rive_jobs_join_any(const uint32_t* jobs, uint32_t count, double timeoutSeconds);
// rive_parallel_v1
RIVE_BINDING_IMPORT("rive_parallel_v1", "size")
uint32_t rive_parallel_size(void);
RIVE_BINDING_IMPORT("rive_parallel_v1", "run")
uint32_t rive_parallel_run(uint32_t control);
RIVE_BINDING_IMPORT("rive_parallel_v1", "waiting")
void rive_parallel_waiting(uint32_t control);
// rive_shared_v1
RIVE_BINDING_IMPORT("rive_shared_v1", "region_create")
uint32_t rive_shared_region_create(uint32_t size);
RIVE_BINDING_IMPORT("rive_shared_v1", "region_size")
uint32_t rive_shared_region_size(uint32_t region);
RIVE_BINDING_IMPORT("rive_shared_v1", "region_lock")
uint32_t rive_shared_region_lock(uint32_t region, double timeoutSeconds);
RIVE_BINDING_IMPORT("rive_shared_v1", "region_unlock")
void rive_shared_region_unlock(uint32_t region);
RIVE_BINDING_IMPORT("rive_shared_v1", "region_read")
uint32_t rive_shared_region_read(uint32_t region, uint32_t offset, uint8_t* out, uint32_t outByteCount);
RIVE_BINDING_IMPORT("rive_shared_v1", "region_write")
uint32_t rive_shared_region_write(uint32_t region, uint32_t offset, const uint8_t* data, uint32_t dataByteCount);
RIVE_BINDING_IMPORT("rive_shared_v1", "region_poisoned")
uint32_t rive_shared_region_poisoned(uint32_t region);
RIVE_BINDING_IMPORT("rive_shared_v1", "atomic_load")
double rive_shared_atomic_load(uint32_t region, uint32_t offset);
RIVE_BINDING_IMPORT("rive_shared_v1", "atomic_store")
double rive_shared_atomic_store(uint32_t region, uint32_t offset, uint32_t value);
RIVE_BINDING_IMPORT("rive_shared_v1", "atomic_add")
double rive_shared_atomic_add(uint32_t region, uint32_t offset, uint32_t value);
RIVE_BINDING_IMPORT("rive_shared_v1", "atomic_cas")
double rive_shared_atomic_cas(uint32_t region, uint32_t offset, uint32_t expected, uint32_t desired);
RIVE_BINDING_IMPORT("rive_shared_v1", "ring_create")
uint32_t rive_shared_ring_create(uint32_t capacity);
RIVE_BINDING_IMPORT("rive_shared_v1", "ring_write")
uint32_t rive_shared_ring_write(uint32_t ring, const uint8_t* data, uint32_t dataByteCount, const uint32_t* holds, uint32_t holdCount);
RIVE_BINDING_IMPORT("rive_shared_v1", "ring_read")
uint32_t rive_shared_ring_read(uint32_t ring, uint8_t* out, uint32_t outByteCount);
RIVE_BINDING_IMPORT("rive_shared_v1", "ring_drop")
uint32_t rive_shared_ring_drop(uint32_t ring, uint32_t capacity);
RIVE_BINDING_IMPORT("rive_shared_v1", "ring_used")
uint32_t rive_shared_ring_used(uint32_t ring);
RIVE_BINDING_IMPORT("rive_shared_v1", "ring_signal")
uint32_t rive_shared_ring_signal(uint32_t ring, uint32_t space);
RIVE_BINDING_IMPORT("rive_shared_v1", "snapshot_create")
uint32_t rive_shared_snapshot_create(uint32_t capacity);
RIVE_BINDING_IMPORT("rive_shared_v1", "snapshot_publish")
uint32_t rive_shared_snapshot_publish(uint32_t snapshot, const uint8_t* data, uint32_t dataByteCount, const uint32_t* holds, uint32_t holdCount);
RIVE_BINDING_IMPORT("rive_shared_v1", "snapshot_read")
uint32_t rive_shared_snapshot_read(uint32_t snapshot, uint8_t* out, uint32_t outByteCount);
RIVE_BINDING_IMPORT("rive_shared_v1", "snapshot_seq")
double rive_shared_snapshot_seq(uint32_t snapshot);
RIVE_BINDING_IMPORT("rive_shared_v1", "read_done")
void rive_shared_read_done(void);
RIVE_BINDING_IMPORT("rive_shared_v1", "signal_create")
uint32_t rive_shared_signal_create(void);
RIVE_BINDING_IMPORT("rive_shared_v1", "signal_notify")
void rive_shared_signal_notify(uint32_t signal);
RIVE_BINDING_IMPORT("rive_shared_v1", "signal_seq")
double rive_shared_signal_seq(uint32_t signal);
RIVE_BINDING_IMPORT("rive_shared_v1", "blob_create")
uint32_t rive_shared_blob_create(const uint8_t* data, uint32_t dataByteCount);
RIVE_BINDING_IMPORT("rive_shared_v1", "blob_size")
uint32_t rive_shared_blob_size(uint32_t blob);
RIVE_BINDING_IMPORT("rive_shared_v1", "blob_read")
uint32_t rive_shared_blob_read(uint32_t blob, uint32_t offset, uint8_t* out, uint32_t outByteCount);
RIVE_BINDING_IMPORT("rive_shared_v1", "retain")
uint32_t rive_shared_retain(uint32_t object);
RIVE_BINDING_IMPORT("rive_shared_v1", "release")
void rive_shared_release(uint32_t object);
#ifdef __cplusplus
}
#endif
#endif