blob: cdfb1354229d5cf5cd4438f5c0a1dbdfbece7639 [file]
// Generated by src/wasm/idl/generate.py from bindings.py. Do not edit.
//
// Included inside wasm_scripting_vm.cpp's anonymous namespace before
// the native implementations; the declarations pin each hand-written
// impl core to the contract signature (a mismatch makes the table
// cast ambiguous). The WAMR wrappers adapt exec_env to the VM the
// cores share with the browser lane's generated C shims.
// clang-format off
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_shader_module_desc_v1
{
uint32_t language;
uint32_t stage;
uint32_t codeSize;
uint32_t hlslSourceSize;
uint32_t hlslEntryPointSize;
uint32_t bindingMapSize;
uint32_t glFixupSize;
uint32_t shaderAssetId;
} rive_gpu_shader_module_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;
} 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;
void rtLogImpl(WasmScriptingVM* vm, int32_t level, const char* message, uint32_t length);
void rtMarkNeedsUpdateImpl(WasmScriptingVM* vm, uint32_t object);
void rtBudgetExceededImpl(WasmScriptingVM* vm, uint32_t ms);
void rtDebugEnterImpl(WasmScriptingVM* vm, uint32_t func, uint32_t line);
uint32_t rtDebugLineImpl(WasmScriptingVM* vm, uint32_t line);
void rtDebugLeaveImpl(WasmScriptingVM* vm);
uint32_t rtUtcOffsetImpl(WasmScriptingVM* vm, double epochSeconds);
uint32_t rtIsDstImpl(WasmScriptingVM* vm, double epochSeconds);
uint32_t rtZoneNameImpl(WasmScriptingVM* vm, double epochSeconds, char* buffer, uint32_t capacity);
uint32_t dataViewModelImpl(WasmScriptingVM* vm, uint32_t object);
uint32_t dataRootViewModelImpl(WasmScriptingVM* vm, uint32_t object);
uint32_t dataGlobalViewModelImpl(WasmScriptingVM* vm, uint32_t object, const char* name, uint32_t nameLength);
uint32_t dataGlobalViewModelNamesImpl(WasmScriptingVM* vm, uint32_t object, char* buffer, uint32_t capacity);
uint32_t dataContextImpl(WasmScriptingVM* vm, uint32_t object);
uint32_t dataContextParentImpl(WasmScriptingVM* vm, uint32_t dataContext);
uint32_t dataContextViewModelImpl(WasmScriptingVM* vm, uint32_t dataContext);
void dataContextReleaseImpl(WasmScriptingVM* vm, uint32_t dataContext);
uint32_t dataHasViewModelImpl(WasmScriptingVM* vm, const char* name, uint32_t nameLength);
uint32_t dataNewViewModelImpl(WasmScriptingVM* vm, const char* name, uint32_t nameLength, const char* templateName, uint32_t templateLength);
void dataVmiReleaseImpl(WasmScriptingVM* vm, uint32_t vmi);
uint32_t dataVmiNumberImpl(WasmScriptingVM* vm, uint32_t vmi, const char* name, uint32_t length);
uint32_t dataVmiBooleanImpl(WasmScriptingVM* vm, uint32_t vmi, const char* name, uint32_t length);
uint32_t dataVmiStringImpl(WasmScriptingVM* vm, uint32_t vmi, const char* name, uint32_t length);
uint32_t dataVmiTriggerImpl(WasmScriptingVM* vm, uint32_t vmi, const char* name, uint32_t length);
uint32_t dataVmiColorImpl(WasmScriptingVM* vm, uint32_t vmi, const char* name, uint32_t length);
uint32_t dataVmiViewModelImpl(WasmScriptingVM* vm, uint32_t vmi, const char* name, uint32_t length);
uint32_t dataVmiPropertyImpl(WasmScriptingVM* vm, uint32_t vmi, const char* name, uint32_t length, uint32_t* kindOut, uint32_t kindCount);
uint32_t dataVmiInstanceImpl(WasmScriptingVM* vm, uint32_t vmi, const char* name, uint32_t nameLength);
uint32_t dataVmiSymbolIndexImpl(WasmScriptingVM* vm, uint32_t vmi);
uint32_t dataVmiEqualImpl(WasmScriptingVM* vm, uint32_t a, uint32_t b);
uint32_t dataViewModelGetImpl(WasmScriptingVM* vm, uint32_t property);
uint32_t dataVmiListImpl(WasmScriptingVM* vm, uint32_t vmi, const char* name, uint32_t length);
uint32_t dataVmiEnumImpl(WasmScriptingVM* vm, uint32_t vmi, const char* name, uint32_t length);
uint32_t dataVmiImageImpl(WasmScriptingVM* vm, uint32_t vmi, const char* name, uint32_t length);
uint32_t dataVmiFontImpl(WasmScriptingVM* vm, uint32_t vmi, const char* name, uint32_t length);
uint32_t dataVmiBlobImpl(WasmScriptingVM* vm, uint32_t vmi, const char* name, uint32_t length);
uint32_t dataImageGetImpl(WasmScriptingVM* vm, uint32_t property);
void dataImageSetImpl(WasmScriptingVM* vm, uint32_t property, uint32_t image);
uint32_t dataFontGetImpl(WasmScriptingVM* vm, uint32_t property);
void dataFontSetImpl(WasmScriptingVM* vm, uint32_t property, uint32_t font);
void dataFontReleaseImpl(WasmScriptingVM* vm, uint32_t font);
uint32_t dataBlobPresentImpl(WasmScriptingVM* vm, uint32_t property);
uint32_t dataBlobGetImpl(WasmScriptingVM* vm, uint32_t property, uint8_t* buffer, uint32_t capacity);
uint32_t dataBlobNameImpl(WasmScriptingVM* vm, uint32_t property, char* buffer, uint32_t capacity);
void dataBlobSetImpl(WasmScriptingVM* vm, uint32_t property, const uint8_t* bytes, uint32_t byteCount);
void dataBlobClearImpl(WasmScriptingVM* vm, uint32_t property);
uint32_t dataEnumGetImpl(WasmScriptingVM* vm, uint32_t property, char* buffer, uint32_t capacity);
void dataEnumSetImpl(WasmScriptingVM* vm, uint32_t property, const char* value, uint32_t length);
uint32_t dataEnumValuesImpl(WasmScriptingVM* vm, uint32_t property, char* buffer, uint32_t capacity);
void dataPropReleaseImpl(WasmScriptingVM* vm, uint32_t property);
void dataTriggerFireImpl(WasmScriptingVM* vm, uint32_t property);
uint32_t dataListLengthImpl(WasmScriptingVM* vm, uint32_t property);
void dataListPushImpl(WasmScriptingVM* vm, uint32_t property, uint32_t vmi);
uint32_t dataListPopImpl(WasmScriptingVM* vm, uint32_t property);
uint32_t dataListShiftImpl(WasmScriptingVM* vm, uint32_t property);
void dataListClearImpl(WasmScriptingVM* vm, uint32_t property);
void dataListSwapImpl(WasmScriptingVM* vm, uint32_t property, uint32_t index1, uint32_t index2);
void dataListInsertImpl(WasmScriptingVM* vm, uint32_t property, uint32_t vmi, uint32_t index);
void dataListRemoveImpl(WasmScriptingVM* vm, uint32_t property, uint32_t vmi);
void dataListRemoveAtImpl(WasmScriptingVM* vm, uint32_t property, uint32_t index);
void dataListRemoveAllOfImpl(WasmScriptingVM* vm, uint32_t property, uint32_t vmi);
uint32_t dataListGetImpl(WasmScriptingVM* vm, uint32_t property, uint32_t index);
void dataViewModelSetImpl(WasmScriptingVM* vm, uint32_t property, uint32_t vmi);
uint32_t dataColorGetImpl(WasmScriptingVM* vm, uint32_t property);
void dataColorSetImpl(WasmScriptingVM* vm, uint32_t property, uint32_t value);
float dataNumberGetImpl(WasmScriptingVM* vm, uint32_t property);
void dataNumberSetImpl(WasmScriptingVM* vm, uint32_t property, float value);
uint32_t dataBooleanGetImpl(WasmScriptingVM* vm, uint32_t property);
void dataBooleanSetImpl(WasmScriptingVM* vm, uint32_t property, uint32_t value);
uint32_t dataStringGetImpl(WasmScriptingVM* vm, uint32_t property, char* buffer, uint32_t capacity);
void dataStringSetImpl(WasmScriptingVM* vm, uint32_t property, const char* value, uint32_t length);
void dataWatchImpl(WasmScriptingVM* vm, uint32_t property, uint32_t token);
void dataUnwatchImpl(WasmScriptingVM* vm, uint32_t property);
void dataConvertResultImpl(WasmScriptingVM* vm, uint32_t kind, float number, uint32_t booleanValue, uint32_t color, const char* value, uint32_t length);
void artboardReleaseImpl(WasmScriptingVM* vm, uint32_t artboard);
uint32_t artboardAdvanceImpl(WasmScriptingVM* vm, uint32_t artboard, float seconds);
void artboardDrawImpl(WasmScriptingVM* vm, uint32_t artboard, uint32_t renderer);
uint32_t artboardInstanceImpl(WasmScriptingVM* vm, uint32_t artboard, uint32_t vmi);
uint32_t artboardDataImpl(WasmScriptingVM* vm, uint32_t artboard);
float artboardWidthImpl(WasmScriptingVM* vm, uint32_t artboard);
float artboardHeightImpl(WasmScriptingVM* vm, uint32_t artboard);
void artboardSetWidthImpl(WasmScriptingVM* vm, uint32_t artboard, float value);
void artboardSetHeightImpl(WasmScriptingVM* vm, uint32_t artboard, float value);
uint32_t artboardFrameOriginImpl(WasmScriptingVM* vm, uint32_t artboard);
void artboardSetFrameOriginImpl(WasmScriptingVM* vm, uint32_t artboard, uint32_t value);
void artboardBoundsImpl(WasmScriptingVM* vm, uint32_t artboard, float* out, uint32_t outCount);
uint32_t artboardPointerEventImpl(WasmScriptingVM* vm, uint32_t artboard, uint32_t kind, uint32_t pointerId, float x, float y);
uint32_t artboardAnimationImpl(WasmScriptingVM* vm, uint32_t artboard, const char* name, uint32_t length);
void artboardAnimationReleaseImpl(WasmScriptingVM* vm, uint32_t animation);
float artboardAnimationDurationImpl(WasmScriptingVM* vm, uint32_t animation);
uint32_t artboardAnimationAdvanceImpl(WasmScriptingVM* vm, uint32_t animation, float seconds);
void artboardAnimationSetTimeImpl(WasmScriptingVM* vm, uint32_t animation, float value, uint32_t mode);
uint32_t artboardNodeImpl(WasmScriptingVM* vm, uint32_t artboard, const char* name, uint32_t length);
void artboardNodeReleaseImpl(WasmScriptingVM* vm, uint32_t node);
void artboardNodeTransformImpl(WasmScriptingVM* vm, uint32_t node, float* out, uint32_t outCount);
void artboardNodeSetImpl(WasmScriptingVM* vm, uint32_t node, uint32_t field, float v0, float v1);
void artboardNodeWorldTransformImpl(WasmScriptingVM* vm, uint32_t node, float* out, uint32_t outCount);
void artboardNodeSetWorldTransformImpl(WasmScriptingVM* vm, uint32_t node, const float* values, uint32_t floatCount);
void artboardNodeDecomposeImpl(WasmScriptingVM* vm, uint32_t node, const float* values, uint32_t floatCount);
uint32_t artboardNodePathVerbsImpl(WasmScriptingVM* vm, uint32_t node, uint8_t* out, uint32_t outCount);
uint32_t artboardNodePathPointsImpl(WasmScriptingVM* vm, uint32_t node, float* out, uint32_t outCount);
uint32_t artboardNodePaintImpl(WasmScriptingVM* vm, uint32_t node, uint32_t* out, uint32_t outCount);
uint32_t artboardNodeChildrenImpl(WasmScriptingVM* vm, uint32_t node, uint32_t* out, uint32_t outCount);
uint32_t artboardNodeParentImpl(WasmScriptingVM* vm, uint32_t node);
uint32_t artboardPropertyKeyImpl(WasmScriptingVM* vm, uint32_t artboard, const char* name, uint32_t length);
void artboardDrawVisitImpl(WasmScriptingVM* vm, uint32_t artboard, uint32_t renderer);
void artboardDrawModulatedImpl(WasmScriptingVM* vm, uint32_t artboard, uint32_t renderer, uint32_t key);
void artboardDrawableDrawImpl(WasmScriptingVM* vm, uint32_t drawable, uint32_t renderer);
uint32_t artboardDrawableValueImpl(WasmScriptingVM* vm, uint32_t drawable, uint32_t key, uint32_t* out, uint32_t outCount);
uint32_t artboardDrawableStringImpl(WasmScriptingVM* vm, uint32_t drawable, uint32_t key, char* out, uint32_t outCount);
#ifdef WITH_RIVE_TOOLS
uint32_t artboardDrawablePropertiesImpl(WasmScriptingVM* vm, uint32_t drawable, char* out, uint32_t outCount);
#endif
uint32_t audioSourceImpl(WasmScriptingVM* vm, uint32_t object, const char* name, uint32_t nameLength);
void audioSourceReleaseImpl(WasmScriptingVM* vm, uint32_t source);
float audioSourceDurationImpl(WasmScriptingVM* vm, uint32_t source);
uint32_t audioSourceSampleRateImpl(WasmScriptingVM* vm, uint32_t source);
uint32_t audioSourceChannelsImpl(WasmScriptingVM* vm, uint32_t source);
uint32_t audioPlayImpl(WasmScriptingVM* vm, uint32_t source);
uint32_t audioPlayAtTimeImpl(WasmScriptingVM* vm, uint32_t source, float seconds);
uint32_t audioPlayInTimeImpl(WasmScriptingVM* vm, uint32_t source, float seconds);
uint32_t audioPlayAtFrameImpl(WasmScriptingVM* vm, uint32_t source, double frame);
uint32_t audioPlayInFrameImpl(WasmScriptingVM* vm, uint32_t source, double frame);
float audioTimeImpl(WasmScriptingVM* vm);
double audioTimeFrameImpl(WasmScriptingVM* vm);
uint32_t audioSampleRateImpl(WasmScriptingVM* vm);
void audioSoundReleaseImpl(WasmScriptingVM* vm, uint32_t sound);
void audioSoundPlayImpl(WasmScriptingVM* vm, uint32_t sound);
void audioSoundPauseImpl(WasmScriptingVM* vm, uint32_t sound);
void audioSoundResumeImpl(WasmScriptingVM* vm, uint32_t sound);
void audioSoundStopImpl(WasmScriptingVM* vm, uint32_t sound, uint32_t fadeFrames);
uint32_t audioSoundSeekImpl(WasmScriptingVM* vm, uint32_t sound, float seconds);
uint32_t audioSoundSeekFrameImpl(WasmScriptingVM* vm, uint32_t sound, double frame);
uint32_t audioSoundCompletedImpl(WasmScriptingVM* vm, uint32_t sound);
float audioSoundTimeImpl(WasmScriptingVM* vm, uint32_t sound);
double audioSoundTimeFrameImpl(WasmScriptingVM* vm, uint32_t sound);
float audioSoundVolumeImpl(WasmScriptingVM* vm, uint32_t sound);
void audioSoundSetVolumeImpl(WasmScriptingVM* vm, uint32_t sound, float value);
uint32_t pathNewImpl(WasmScriptingVM* vm);
void pathUpdateImpl(WasmScriptingVM* vm, uint32_t path, const uint8_t* verbs, uint32_t verbCount, const float* points, uint32_t floatCount, uint32_t fillRule);
void pathReleaseImpl(WasmScriptingVM* vm, uint32_t path);
void pathEffectResultImpl(WasmScriptingVM* vm, const uint8_t* verbs, uint32_t verbCount, const float* points, uint32_t floatCount);
uint32_t measurePathNewImpl(WasmScriptingVM* vm, const uint8_t* verbs, uint32_t verbCount, const float* points, uint32_t floatCount);
uint32_t measureContoursNewImpl(WasmScriptingVM* vm, const uint8_t* verbs, uint32_t verbCount, const float* points, uint32_t floatCount);
uint32_t measureContourNextImpl(WasmScriptingVM* vm, uint32_t measure);
float measureLengthImpl(WasmScriptingVM* vm, uint32_t measure);
uint32_t measureIsClosedImpl(WasmScriptingVM* vm, uint32_t measure);
void measurePosTanImpl(WasmScriptingVM* vm, uint32_t measure, float distance, float* out, uint32_t outCount);
void measureWarpImpl(WasmScriptingVM* vm, uint32_t measure, float x, float y, float* out, uint32_t outCount);
uint32_t measureExtractImpl(WasmScriptingVM* vm, uint32_t measure, float startDistance, float endDistance, uint32_t startWithMove);
uint32_t measureExtractReadImpl(WasmScriptingVM* vm, uint32_t measure, uint8_t* verbs, uint32_t verbCount, float* points, uint32_t floatCount);
void measureReleaseImpl(WasmScriptingVM* vm, uint32_t measure);
uint32_t paintNewImpl(WasmScriptingVM* vm);
void paintReleaseImpl(WasmScriptingVM* vm, uint32_t paint);
void paintStyleImpl(WasmScriptingVM* vm, uint32_t paint, uint32_t value);
void paintColorImpl(WasmScriptingVM* vm, uint32_t paint, uint32_t value);
void paintThicknessImpl(WasmScriptingVM* vm, uint32_t paint, float value);
void paintJoinImpl(WasmScriptingVM* vm, uint32_t paint, uint32_t value);
void paintCapImpl(WasmScriptingVM* vm, uint32_t paint, uint32_t value);
void paintBlendModeImpl(WasmScriptingVM* vm, uint32_t paint, uint32_t value);
void paintFeatherImpl(WasmScriptingVM* vm, uint32_t paint, float value);
void paintShaderImpl(WasmScriptingVM* vm, uint32_t paint, uint32_t shader);
uint32_t canvasNewImpl(WasmScriptingVM* vm, uint32_t width, uint32_t height);
void canvasReleaseImpl(WasmScriptingVM* vm, uint32_t canvas);
uint32_t canvasWidthImpl(WasmScriptingVM* vm, uint32_t canvas);
uint32_t canvasHeightImpl(WasmScriptingVM* vm, uint32_t canvas);
uint32_t canvasResizeImpl(WasmScriptingVM* vm, uint32_t canvas, uint32_t width, uint32_t height);
uint32_t canvasImageImpl(WasmScriptingVM* vm, uint32_t canvas);
uint32_t canvasBeginFrameImpl(WasmScriptingVM* vm, uint32_t canvas, uint32_t clearColor);
void canvasEndFrameImpl(WasmScriptingVM* vm, uint32_t canvas);
uint32_t gpuFeaturesImpl(WasmScriptingVM* vm, uint32_t* out, uint32_t outCount);
uint32_t gpuCanvasNewImpl(WasmScriptingVM* vm, uint32_t width, uint32_t height);
void gpuCanvasReleaseImpl(WasmScriptingVM* vm, uint32_t canvas);
uint32_t gpuCanvasColorViewImpl(WasmScriptingVM* vm, uint32_t canvas, uint32_t* props, uint32_t propCount);
uint32_t gpuCanvasImageImpl(WasmScriptingVM* vm, uint32_t canvas);
uint32_t gpuCanvasResizeImpl(WasmScriptingVM* vm, uint32_t canvas, uint32_t width, uint32_t height, uint32_t* props, uint32_t propCount);
uint32_t gpuPassBeginImpl(WasmScriptingVM* vm, const rive_gpu_pass_desc_v1* desc, uint32_t descByteCount, const rive_gpu_pass_color_attachment_v1* colors, uint32_t colorByteCount);
void gpuPassSetPipelineImpl(WasmScriptingVM* vm, uint32_t pass, uint32_t pipeline);
void gpuPassSetVertexBufferImpl(WasmScriptingVM* vm, uint32_t pass, uint32_t slot, uint32_t buffer, uint32_t offset);
void gpuPassSetIndexBufferImpl(WasmScriptingVM* vm, uint32_t pass, uint32_t buffer, uint32_t indexFormat, uint32_t offset);
void gpuPassSetBindGroupImpl(WasmScriptingVM* vm, uint32_t pass, uint32_t groupIndex, uint32_t bindGroup, const uint32_t* dynamicOffsets, uint32_t dynamicOffsetByteCount);
void gpuPassSetViewportImpl(WasmScriptingVM* vm, uint32_t pass, float x, float y, float width, float height, float minDepth, float maxDepth);
void gpuPassSetScissorImpl(WasmScriptingVM* vm, uint32_t pass, uint32_t x, uint32_t y, uint32_t width, uint32_t height);
void gpuPassSetStencilReferenceImpl(WasmScriptingVM* vm, uint32_t pass, uint32_t ref);
void gpuPassSetBlendColorImpl(WasmScriptingVM* vm, uint32_t pass, float r, float g, float b, float a);
void gpuPassDrawImpl(WasmScriptingVM* vm, uint32_t pass, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
void gpuPassDrawIndexedImpl(WasmScriptingVM* vm, uint32_t pass, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance);
void gpuPassFinishImpl(WasmScriptingVM* vm, uint32_t pass);
void gpuPassReleaseImpl(WasmScriptingVM* vm, uint32_t pass);
uint32_t gpuImageViewImpl(WasmScriptingVM* vm, uint32_t image, uint32_t width, uint32_t height);
uint32_t gpuBufferNewImpl(WasmScriptingVM* vm, uint32_t usage, uint32_t sizeInBytes, uint32_t immutable, const uint8_t* data, uint32_t dataCount);
void gpuBufferUpdateImpl(WasmScriptingVM* vm, uint32_t buffer, uint32_t dstOffset, const uint8_t* data, uint32_t dataCount);
void gpuBufferReleaseImpl(WasmScriptingVM* vm, uint32_t buffer);
uint32_t gpuTextureNewImpl(WasmScriptingVM* vm, const rive_gpu_texture_desc_v1* desc, uint32_t descByteCount);
void gpuTextureUploadImpl(WasmScriptingVM* vm, uint32_t texture, const rive_gpu_texture_upload_v1* region, uint32_t regionByteCount, const uint8_t* data, uint32_t dataCount);
void gpuTextureReleaseImpl(WasmScriptingVM* vm, uint32_t texture);
uint32_t gpuSamplerNewImpl(WasmScriptingVM* vm, const rive_gpu_sampler_desc_v1* desc, uint32_t descByteCount);
void gpuSamplerReleaseImpl(WasmScriptingVM* vm, uint32_t sampler);
uint32_t gpuTextureViewNewImpl(WasmScriptingVM* vm, uint32_t texture, const rive_gpu_texture_view_desc_v1* desc, uint32_t descByteCount);
void gpuTextureViewReleaseImpl(WasmScriptingVM* vm, uint32_t view);
uint32_t gpuShaderTargetImpl(WasmScriptingVM* vm);
uint32_t gpuShaderAssetBytesImpl(WasmScriptingVM* vm, uint32_t object, const char* name, uint32_t nameLength, uint8_t* out, uint32_t outCount);
uint32_t gpuShaderAssetIdImpl(WasmScriptingVM* vm, uint32_t object, const char* name, uint32_t nameLength);
uint32_t gpuShaderModuleNewImpl(WasmScriptingVM* vm, const rive_gpu_shader_module_desc_v1* desc, uint32_t descByteCount, const uint8_t* blob, uint32_t blobCount);
void gpuShaderModuleReleaseImpl(WasmScriptingVM* vm, uint32_t shaderModule);
uint32_t gpuBindGroupLayoutNewImpl(WasmScriptingVM* vm, uint32_t groupIndex, const rive_gpu_bind_group_layout_entry_v1* entries, uint32_t entryByteCount);
void gpuBindGroupLayoutReleaseImpl(WasmScriptingVM* vm, uint32_t layout);
uint32_t gpuBindGroupLayoutFromShaderImpl(WasmScriptingVM* vm, uint32_t shaderModule, uint32_t groupIndex, const uint32_t* dynamicUBOs, uint32_t dynamicUBOCount);
uint32_t gpuBindGroupNewImpl(WasmScriptingVM* vm, 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);
void gpuBindGroupReleaseImpl(WasmScriptingVM* vm, uint32_t bindGroup);
uint32_t gpuPipelineNewImpl(WasmScriptingVM* vm, const rive_gpu_pipeline_desc_v1* desc, uint32_t descByteCount, const uint8_t* blob, uint32_t blobCount);
void gpuPipelineReleaseImpl(WasmScriptingVM* vm, uint32_t pipeline);
uint32_t bufferNewImpl(WasmScriptingVM* vm, uint32_t bufferType, uint32_t flags, uint32_t sizeInBytes);
void bufferUpdateImpl(WasmScriptingVM* vm, uint32_t buffer, const uint8_t* bytes, uint32_t byteCount);
void bufferReleaseImpl(WasmScriptingVM* vm, uint32_t buffer);
uint32_t blobAssetBytesImpl(WasmScriptingVM* vm, uint32_t object, const char* name, uint32_t nameLength, uint8_t* out, uint32_t outCount);
uint32_t imageFromAssetImpl(WasmScriptingVM* vm, uint32_t object, const char* name, uint32_t length);
uint32_t imageWidthImpl(WasmScriptingVM* vm, uint32_t image);
uint32_t imageHeightImpl(WasmScriptingVM* vm, uint32_t image);
void imageReleaseImpl(WasmScriptingVM* vm, uint32_t image);
uint32_t imageDecodeImpl(WasmScriptingVM* vm, const uint8_t* bytes, uint32_t byteCount, uint32_t token);
void imageDecodeCancelImpl(WasmScriptingVM* vm, uint32_t token);
uint32_t shaderLinearImpl(WasmScriptingVM* vm, float sx, float sy, float ex, float ey, uint32_t colors, uint32_t stops, uint32_t count);
uint32_t shaderRadialImpl(WasmScriptingVM* vm, float cx, float cy, float radius, uint32_t colors, uint32_t stops, uint32_t count);
void shaderReleaseImpl(WasmScriptingVM* vm, uint32_t shader);
void rendererSaveImpl(WasmScriptingVM* vm, uint32_t renderer);
void rendererRestoreImpl(WasmScriptingVM* vm, uint32_t renderer);
void rendererTransformImpl(WasmScriptingVM* vm, uint32_t renderer, float xx, float xy, float yx, float yy, float tx, float ty);
void rendererDrawPathImpl(WasmScriptingVM* vm, uint32_t renderer, uint32_t path, uint32_t paint);
void rendererClipPathImpl(WasmScriptingVM* vm, uint32_t renderer, uint32_t path);
void rendererModulateColorImpl(WasmScriptingVM* vm, uint32_t renderer, uint32_t color, uint32_t replace);
void rendererDrawImageImpl(WasmScriptingVM* vm, uint32_t renderer, uint32_t image, uint32_t sampler, uint32_t blend, float opacity);
void rendererDrawImageMeshImpl(WasmScriptingVM* vm, uint32_t renderer, uint32_t image, uint32_t sampler, uint32_t vertexBuffer, uint32_t uvBuffer, uint32_t indexBuffer, uint32_t blend, float opacity);
void rtLog(wasm_exec_env_t env, int32_t level, const char* message, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg messageUtf8(vm, message, length);
rtLogImpl(vm, level, messageUtf8.data(), messageUtf8.size());
}
void rtMarkNeedsUpdate(wasm_exec_env_t env, uint32_t object)
{
WasmScriptingVM* vm = vmFromEnv(env);
rtMarkNeedsUpdateImpl(vm, object);
}
void rtBudgetExceeded(wasm_exec_env_t env, uint32_t ms)
{
WasmScriptingVM* vm = vmFromEnv(env);
rtBudgetExceededImpl(vm, ms);
}
void rtDebugEnter(wasm_exec_env_t env, uint32_t func, uint32_t line)
{
WasmScriptingVM* vm = vmFromEnv(env);
rtDebugEnterImpl(vm, func, line);
}
uint32_t rtDebugLine(wasm_exec_env_t env, uint32_t line)
{
WasmScriptingVM* vm = vmFromEnv(env);
return rtDebugLineImpl(vm, line);
}
void rtDebugLeave(wasm_exec_env_t env)
{
WasmScriptingVM* vm = vmFromEnv(env);
rtDebugLeaveImpl(vm);
}
uint32_t rtUtcOffset(wasm_exec_env_t env, double epochSeconds)
{
WasmScriptingVM* vm = vmFromEnv(env);
return rtUtcOffsetImpl(vm, epochSeconds);
}
uint32_t rtIsDst(wasm_exec_env_t env, double epochSeconds)
{
WasmScriptingVM* vm = vmFromEnv(env);
return rtIsDstImpl(vm, epochSeconds);
}
uint32_t rtZoneName(wasm_exec_env_t env, double epochSeconds, char* buffer, uint32_t capacity)
{
WasmScriptingVM* vm = vmFromEnv(env);
return rtZoneNameImpl(vm, epochSeconds, buffer, capacity);
}
uint32_t dataViewModel(wasm_exec_env_t env, uint32_t object)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataViewModelImpl(vm, object);
}
uint32_t dataRootViewModel(wasm_exec_env_t env, uint32_t object)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataRootViewModelImpl(vm, object);
}
uint32_t dataGlobalViewModel(wasm_exec_env_t env, uint32_t object, const char* name, uint32_t nameLength)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, nameLength);
return dataGlobalViewModelImpl(vm, object, nameUtf8.data(), nameUtf8.size());
}
uint32_t dataGlobalViewModelNames(wasm_exec_env_t env, uint32_t object, char* buffer, uint32_t capacity)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataGlobalViewModelNamesImpl(vm, object, buffer, capacity);
}
uint32_t dataContext(wasm_exec_env_t env, uint32_t object)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataContextImpl(vm, object);
}
uint32_t dataContextParent(wasm_exec_env_t env, uint32_t dataContext)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataContextParentImpl(vm, dataContext);
}
uint32_t dataContextViewModel(wasm_exec_env_t env, uint32_t dataContext)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataContextViewModelImpl(vm, dataContext);
}
void dataContextRelease(wasm_exec_env_t env, uint32_t dataContext)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataContextReleaseImpl(vm, dataContext);
}
uint32_t dataHasViewModel(wasm_exec_env_t env, const char* name, uint32_t nameLength)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, nameLength);
return dataHasViewModelImpl(vm, nameUtf8.data(), nameUtf8.size());
}
uint32_t dataNewViewModel(wasm_exec_env_t env, const char* name, uint32_t nameLength, const char* templateName, uint32_t templateLength)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, nameLength);
WasmStringArg templateNameUtf8(vm, templateName, templateLength);
return dataNewViewModelImpl(vm, nameUtf8.data(), nameUtf8.size(), templateNameUtf8.data(), templateNameUtf8.size());
}
void dataVmiRelease(wasm_exec_env_t env, uint32_t vmi)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataVmiReleaseImpl(vm, vmi);
}
uint32_t dataVmiNumber(wasm_exec_env_t env, uint32_t vmi, const char* name, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, length);
return dataVmiNumberImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
uint32_t dataVmiBoolean(wasm_exec_env_t env, uint32_t vmi, const char* name, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, length);
return dataVmiBooleanImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
uint32_t dataVmiString(wasm_exec_env_t env, uint32_t vmi, const char* name, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, length);
return dataVmiStringImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
uint32_t dataVmiTrigger(wasm_exec_env_t env, uint32_t vmi, const char* name, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, length);
return dataVmiTriggerImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
uint32_t dataVmiColor(wasm_exec_env_t env, uint32_t vmi, const char* name, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, length);
return dataVmiColorImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
uint32_t dataVmiViewModel(wasm_exec_env_t env, uint32_t vmi, const char* name, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, length);
return dataVmiViewModelImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
uint32_t dataVmiProperty(wasm_exec_env_t env, uint32_t vmi, const char* name, uint32_t length, uint32_t* kindOut, uint32_t kindCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, length);
return dataVmiPropertyImpl(vm, vmi, nameUtf8.data(), nameUtf8.size(), kindOut, kindCount);
}
uint32_t dataVmiInstance(wasm_exec_env_t env, uint32_t vmi, const char* name, uint32_t nameLength)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, nameLength);
return dataVmiInstanceImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
uint32_t dataVmiSymbolIndex(wasm_exec_env_t env, uint32_t vmi)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataVmiSymbolIndexImpl(vm, vmi);
}
uint32_t dataVmiEqual(wasm_exec_env_t env, uint32_t a, uint32_t b)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataVmiEqualImpl(vm, a, b);
}
uint32_t dataViewModelGet(wasm_exec_env_t env, uint32_t property)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataViewModelGetImpl(vm, property);
}
uint32_t dataVmiList(wasm_exec_env_t env, uint32_t vmi, const char* name, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, length);
return dataVmiListImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
uint32_t dataVmiEnum(wasm_exec_env_t env, uint32_t vmi, const char* name, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, length);
return dataVmiEnumImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
uint32_t dataVmiImage(wasm_exec_env_t env, uint32_t vmi, const char* name, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, length);
return dataVmiImageImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
uint32_t dataVmiFont(wasm_exec_env_t env, uint32_t vmi, const char* name, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, length);
return dataVmiFontImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
uint32_t dataVmiBlob(wasm_exec_env_t env, uint32_t vmi, const char* name, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, length);
return dataVmiBlobImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
uint32_t dataImageGet(wasm_exec_env_t env, uint32_t property)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataImageGetImpl(vm, property);
}
void dataImageSet(wasm_exec_env_t env, uint32_t property, uint32_t image)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataImageSetImpl(vm, property, image);
}
uint32_t dataFontGet(wasm_exec_env_t env, uint32_t property)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataFontGetImpl(vm, property);
}
void dataFontSet(wasm_exec_env_t env, uint32_t property, uint32_t font)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataFontSetImpl(vm, property, font);
}
void dataFontRelease(wasm_exec_env_t env, uint32_t font)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataFontReleaseImpl(vm, font);
}
uint32_t dataBlobPresent(wasm_exec_env_t env, uint32_t property)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataBlobPresentImpl(vm, property);
}
uint32_t dataBlobGet(wasm_exec_env_t env, uint32_t property, uint8_t* buffer, uint32_t capacity)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataBlobGetImpl(vm, property, buffer, capacity);
}
uint32_t dataBlobName(wasm_exec_env_t env, uint32_t property, char* buffer, uint32_t capacity)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataBlobNameImpl(vm, property, buffer, capacity);
}
void dataBlobSet(wasm_exec_env_t env, uint32_t property, const uint8_t* bytes, uint32_t byteCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataBlobSetImpl(vm, property, bytes, byteCount);
}
void dataBlobClear(wasm_exec_env_t env, uint32_t property)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataBlobClearImpl(vm, property);
}
uint32_t dataEnumGet(wasm_exec_env_t env, uint32_t property, char* buffer, uint32_t capacity)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataEnumGetImpl(vm, property, buffer, capacity);
}
void dataEnumSet(wasm_exec_env_t env, uint32_t property, const char* value, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg valueUtf8(vm, value, length);
dataEnumSetImpl(vm, property, valueUtf8.data(), valueUtf8.size());
}
uint32_t dataEnumValues(wasm_exec_env_t env, uint32_t property, char* buffer, uint32_t capacity)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataEnumValuesImpl(vm, property, buffer, capacity);
}
void dataPropRelease(wasm_exec_env_t env, uint32_t property)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataPropReleaseImpl(vm, property);
}
void dataTriggerFire(wasm_exec_env_t env, uint32_t property)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataTriggerFireImpl(vm, property);
}
uint32_t dataListLength(wasm_exec_env_t env, uint32_t property)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataListLengthImpl(vm, property);
}
void dataListPush(wasm_exec_env_t env, uint32_t property, uint32_t vmi)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataListPushImpl(vm, property, vmi);
}
uint32_t dataListPop(wasm_exec_env_t env, uint32_t property)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataListPopImpl(vm, property);
}
uint32_t dataListShift(wasm_exec_env_t env, uint32_t property)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataListShiftImpl(vm, property);
}
void dataListClear(wasm_exec_env_t env, uint32_t property)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataListClearImpl(vm, property);
}
void dataListSwap(wasm_exec_env_t env, uint32_t property, uint32_t index1, uint32_t index2)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataListSwapImpl(vm, property, index1, index2);
}
void dataListInsert(wasm_exec_env_t env, uint32_t property, uint32_t vmi, uint32_t index)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataListInsertImpl(vm, property, vmi, index);
}
void dataListRemove(wasm_exec_env_t env, uint32_t property, uint32_t vmi)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataListRemoveImpl(vm, property, vmi);
}
void dataListRemoveAt(wasm_exec_env_t env, uint32_t property, uint32_t index)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataListRemoveAtImpl(vm, property, index);
}
void dataListRemoveAllOf(wasm_exec_env_t env, uint32_t property, uint32_t vmi)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataListRemoveAllOfImpl(vm, property, vmi);
}
uint32_t dataListGet(wasm_exec_env_t env, uint32_t property, uint32_t index)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataListGetImpl(vm, property, index);
}
void dataViewModelSet(wasm_exec_env_t env, uint32_t property, uint32_t vmi)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataViewModelSetImpl(vm, property, vmi);
}
uint32_t dataColorGet(wasm_exec_env_t env, uint32_t property)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataColorGetImpl(vm, property);
}
void dataColorSet(wasm_exec_env_t env, uint32_t property, uint32_t value)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataColorSetImpl(vm, property, value);
}
float dataNumberGet(wasm_exec_env_t env, uint32_t property)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataNumberGetImpl(vm, property);
}
void dataNumberSet(wasm_exec_env_t env, uint32_t property, float value)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataNumberSetImpl(vm, property, value);
}
uint32_t dataBooleanGet(wasm_exec_env_t env, uint32_t property)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataBooleanGetImpl(vm, property);
}
void dataBooleanSet(wasm_exec_env_t env, uint32_t property, uint32_t value)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataBooleanSetImpl(vm, property, value);
}
uint32_t dataStringGet(wasm_exec_env_t env, uint32_t property, char* buffer, uint32_t capacity)
{
WasmScriptingVM* vm = vmFromEnv(env);
return dataStringGetImpl(vm, property, buffer, capacity);
}
void dataStringSet(wasm_exec_env_t env, uint32_t property, const char* value, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg valueUtf8(vm, value, length);
dataStringSetImpl(vm, property, valueUtf8.data(), valueUtf8.size());
}
void dataWatch(wasm_exec_env_t env, uint32_t property, uint32_t token)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataWatchImpl(vm, property, token);
}
void dataUnwatch(wasm_exec_env_t env, uint32_t property)
{
WasmScriptingVM* vm = vmFromEnv(env);
dataUnwatchImpl(vm, property);
}
void dataConvertResult(wasm_exec_env_t env, uint32_t kind, float number, uint32_t booleanValue, uint32_t color, const char* value, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg valueUtf8(vm, value, length);
dataConvertResultImpl(vm, kind, number, booleanValue, color, valueUtf8.data(), valueUtf8.size());
}
void artboardRelease(wasm_exec_env_t env, uint32_t artboard)
{
WasmScriptingVM* vm = vmFromEnv(env);
artboardReleaseImpl(vm, artboard);
}
uint32_t artboardAdvance(wasm_exec_env_t env, uint32_t artboard, float seconds)
{
WasmScriptingVM* vm = vmFromEnv(env);
return artboardAdvanceImpl(vm, artboard, seconds);
}
void artboardDraw(wasm_exec_env_t env, uint32_t artboard, uint32_t renderer)
{
WasmScriptingVM* vm = vmFromEnv(env);
artboardDrawImpl(vm, artboard, renderer);
}
uint32_t artboardInstance(wasm_exec_env_t env, uint32_t artboard, uint32_t vmi)
{
WasmScriptingVM* vm = vmFromEnv(env);
return artboardInstanceImpl(vm, artboard, vmi);
}
uint32_t artboardData(wasm_exec_env_t env, uint32_t artboard)
{
WasmScriptingVM* vm = vmFromEnv(env);
return artboardDataImpl(vm, artboard);
}
float artboardWidth(wasm_exec_env_t env, uint32_t artboard)
{
WasmScriptingVM* vm = vmFromEnv(env);
return artboardWidthImpl(vm, artboard);
}
float artboardHeight(wasm_exec_env_t env, uint32_t artboard)
{
WasmScriptingVM* vm = vmFromEnv(env);
return artboardHeightImpl(vm, artboard);
}
void artboardSetWidth(wasm_exec_env_t env, uint32_t artboard, float value)
{
WasmScriptingVM* vm = vmFromEnv(env);
artboardSetWidthImpl(vm, artboard, value);
}
void artboardSetHeight(wasm_exec_env_t env, uint32_t artboard, float value)
{
WasmScriptingVM* vm = vmFromEnv(env);
artboardSetHeightImpl(vm, artboard, value);
}
uint32_t artboardFrameOrigin(wasm_exec_env_t env, uint32_t artboard)
{
WasmScriptingVM* vm = vmFromEnv(env);
return artboardFrameOriginImpl(vm, artboard);
}
void artboardSetFrameOrigin(wasm_exec_env_t env, uint32_t artboard, uint32_t value)
{
WasmScriptingVM* vm = vmFromEnv(env);
artboardSetFrameOriginImpl(vm, artboard, value);
}
void artboardBounds(wasm_exec_env_t env, uint32_t artboard, float* out, uint32_t outCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
artboardBoundsImpl(vm, artboard, out, outCount);
}
uint32_t artboardPointerEvent(wasm_exec_env_t env, uint32_t artboard, uint32_t kind, uint32_t pointerId, float x, float y)
{
WasmScriptingVM* vm = vmFromEnv(env);
return artboardPointerEventImpl(vm, artboard, kind, pointerId, x, y);
}
uint32_t artboardAnimation(wasm_exec_env_t env, uint32_t artboard, const char* name, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, length);
return artboardAnimationImpl(vm, artboard, nameUtf8.data(), nameUtf8.size());
}
void artboardAnimationRelease(wasm_exec_env_t env, uint32_t animation)
{
WasmScriptingVM* vm = vmFromEnv(env);
artboardAnimationReleaseImpl(vm, animation);
}
float artboardAnimationDuration(wasm_exec_env_t env, uint32_t animation)
{
WasmScriptingVM* vm = vmFromEnv(env);
return artboardAnimationDurationImpl(vm, animation);
}
uint32_t artboardAnimationAdvance(wasm_exec_env_t env, uint32_t animation, float seconds)
{
WasmScriptingVM* vm = vmFromEnv(env);
return artboardAnimationAdvanceImpl(vm, animation, seconds);
}
void artboardAnimationSetTime(wasm_exec_env_t env, uint32_t animation, float value, uint32_t mode)
{
WasmScriptingVM* vm = vmFromEnv(env);
artboardAnimationSetTimeImpl(vm, animation, value, mode);
}
uint32_t artboardNode(wasm_exec_env_t env, uint32_t artboard, const char* name, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, length);
return artboardNodeImpl(vm, artboard, nameUtf8.data(), nameUtf8.size());
}
void artboardNodeRelease(wasm_exec_env_t env, uint32_t node)
{
WasmScriptingVM* vm = vmFromEnv(env);
artboardNodeReleaseImpl(vm, node);
}
void artboardNodeTransform(wasm_exec_env_t env, uint32_t node, float* out, uint32_t outCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
artboardNodeTransformImpl(vm, node, out, outCount);
}
void artboardNodeSet(wasm_exec_env_t env, uint32_t node, uint32_t field, float v0, float v1)
{
WasmScriptingVM* vm = vmFromEnv(env);
artboardNodeSetImpl(vm, node, field, v0, v1);
}
void artboardNodeWorldTransform(wasm_exec_env_t env, uint32_t node, float* out, uint32_t outCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
artboardNodeWorldTransformImpl(vm, node, out, outCount);
}
void artboardNodeSetWorldTransform(wasm_exec_env_t env, uint32_t node, const float* values, uint32_t floatCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
artboardNodeSetWorldTransformImpl(vm, node, values, floatCount);
}
void artboardNodeDecompose(wasm_exec_env_t env, uint32_t node, const float* values, uint32_t floatCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
artboardNodeDecomposeImpl(vm, node, values, floatCount);
}
uint32_t artboardNodePathVerbs(wasm_exec_env_t env, uint32_t node, uint8_t* out, uint32_t outCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return artboardNodePathVerbsImpl(vm, node, out, outCount);
}
uint32_t artboardNodePathPoints(wasm_exec_env_t env, uint32_t node, float* out, uint32_t outCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return artboardNodePathPointsImpl(vm, node, out, outCount);
}
uint32_t artboardNodePaint(wasm_exec_env_t env, uint32_t node, uint32_t* out, uint32_t outCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return artboardNodePaintImpl(vm, node, out, outCount);
}
uint32_t artboardNodeChildren(wasm_exec_env_t env, uint32_t node, uint32_t* out, uint32_t outCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return artboardNodeChildrenImpl(vm, node, out, outCount);
}
uint32_t artboardNodeParent(wasm_exec_env_t env, uint32_t node)
{
WasmScriptingVM* vm = vmFromEnv(env);
return artboardNodeParentImpl(vm, node);
}
uint32_t artboardPropertyKey(wasm_exec_env_t env, uint32_t artboard, const char* name, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, length);
return artboardPropertyKeyImpl(vm, artboard, nameUtf8.data(), nameUtf8.size());
}
void artboardDrawVisit(wasm_exec_env_t env, uint32_t artboard, uint32_t renderer)
{
WasmScriptingVM* vm = vmFromEnv(env);
artboardDrawVisitImpl(vm, artboard, renderer);
}
void artboardDrawModulated(wasm_exec_env_t env, uint32_t artboard, uint32_t renderer, uint32_t key)
{
WasmScriptingVM* vm = vmFromEnv(env);
artboardDrawModulatedImpl(vm, artboard, renderer, key);
}
void artboardDrawableDraw(wasm_exec_env_t env, uint32_t drawable, uint32_t renderer)
{
WasmScriptingVM* vm = vmFromEnv(env);
artboardDrawableDrawImpl(vm, drawable, renderer);
}
uint32_t artboardDrawableValue(wasm_exec_env_t env, uint32_t drawable, uint32_t key, uint32_t* out, uint32_t outCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return artboardDrawableValueImpl(vm, drawable, key, out, outCount);
}
uint32_t artboardDrawableString(wasm_exec_env_t env, uint32_t drawable, uint32_t key, char* out, uint32_t outCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return artboardDrawableStringImpl(vm, drawable, key, out, outCount);
}
#ifdef WITH_RIVE_TOOLS
uint32_t artboardDrawableProperties(wasm_exec_env_t env, uint32_t drawable, char* out, uint32_t outCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return artboardDrawablePropertiesImpl(vm, drawable, out, outCount);
}
#endif
uint32_t audioSource(wasm_exec_env_t env, uint32_t object, const char* name, uint32_t nameLength)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, nameLength);
return audioSourceImpl(vm, object, nameUtf8.data(), nameUtf8.size());
}
void audioSourceRelease(wasm_exec_env_t env, uint32_t source)
{
WasmScriptingVM* vm = vmFromEnv(env);
audioSourceReleaseImpl(vm, source);
}
float audioSourceDuration(wasm_exec_env_t env, uint32_t source)
{
WasmScriptingVM* vm = vmFromEnv(env);
return audioSourceDurationImpl(vm, source);
}
uint32_t audioSourceSampleRate(wasm_exec_env_t env, uint32_t source)
{
WasmScriptingVM* vm = vmFromEnv(env);
return audioSourceSampleRateImpl(vm, source);
}
uint32_t audioSourceChannels(wasm_exec_env_t env, uint32_t source)
{
WasmScriptingVM* vm = vmFromEnv(env);
return audioSourceChannelsImpl(vm, source);
}
uint32_t audioPlay(wasm_exec_env_t env, uint32_t source)
{
WasmScriptingVM* vm = vmFromEnv(env);
return audioPlayImpl(vm, source);
}
uint32_t audioPlayAtTime(wasm_exec_env_t env, uint32_t source, float seconds)
{
WasmScriptingVM* vm = vmFromEnv(env);
return audioPlayAtTimeImpl(vm, source, seconds);
}
uint32_t audioPlayInTime(wasm_exec_env_t env, uint32_t source, float seconds)
{
WasmScriptingVM* vm = vmFromEnv(env);
return audioPlayInTimeImpl(vm, source, seconds);
}
uint32_t audioPlayAtFrame(wasm_exec_env_t env, uint32_t source, double frame)
{
WasmScriptingVM* vm = vmFromEnv(env);
return audioPlayAtFrameImpl(vm, source, frame);
}
uint32_t audioPlayInFrame(wasm_exec_env_t env, uint32_t source, double frame)
{
WasmScriptingVM* vm = vmFromEnv(env);
return audioPlayInFrameImpl(vm, source, frame);
}
float audioTime(wasm_exec_env_t env)
{
WasmScriptingVM* vm = vmFromEnv(env);
return audioTimeImpl(vm);
}
double audioTimeFrame(wasm_exec_env_t env)
{
WasmScriptingVM* vm = vmFromEnv(env);
return audioTimeFrameImpl(vm);
}
uint32_t audioSampleRate(wasm_exec_env_t env)
{
WasmScriptingVM* vm = vmFromEnv(env);
return audioSampleRateImpl(vm);
}
void audioSoundRelease(wasm_exec_env_t env, uint32_t sound)
{
WasmScriptingVM* vm = vmFromEnv(env);
audioSoundReleaseImpl(vm, sound);
}
void audioSoundPlay(wasm_exec_env_t env, uint32_t sound)
{
WasmScriptingVM* vm = vmFromEnv(env);
audioSoundPlayImpl(vm, sound);
}
void audioSoundPause(wasm_exec_env_t env, uint32_t sound)
{
WasmScriptingVM* vm = vmFromEnv(env);
audioSoundPauseImpl(vm, sound);
}
void audioSoundResume(wasm_exec_env_t env, uint32_t sound)
{
WasmScriptingVM* vm = vmFromEnv(env);
audioSoundResumeImpl(vm, sound);
}
void audioSoundStop(wasm_exec_env_t env, uint32_t sound, uint32_t fadeFrames)
{
WasmScriptingVM* vm = vmFromEnv(env);
audioSoundStopImpl(vm, sound, fadeFrames);
}
uint32_t audioSoundSeek(wasm_exec_env_t env, uint32_t sound, float seconds)
{
WasmScriptingVM* vm = vmFromEnv(env);
return audioSoundSeekImpl(vm, sound, seconds);
}
uint32_t audioSoundSeekFrame(wasm_exec_env_t env, uint32_t sound, double frame)
{
WasmScriptingVM* vm = vmFromEnv(env);
return audioSoundSeekFrameImpl(vm, sound, frame);
}
uint32_t audioSoundCompleted(wasm_exec_env_t env, uint32_t sound)
{
WasmScriptingVM* vm = vmFromEnv(env);
return audioSoundCompletedImpl(vm, sound);
}
float audioSoundTime(wasm_exec_env_t env, uint32_t sound)
{
WasmScriptingVM* vm = vmFromEnv(env);
return audioSoundTimeImpl(vm, sound);
}
double audioSoundTimeFrame(wasm_exec_env_t env, uint32_t sound)
{
WasmScriptingVM* vm = vmFromEnv(env);
return audioSoundTimeFrameImpl(vm, sound);
}
float audioSoundVolume(wasm_exec_env_t env, uint32_t sound)
{
WasmScriptingVM* vm = vmFromEnv(env);
return audioSoundVolumeImpl(vm, sound);
}
void audioSoundSetVolume(wasm_exec_env_t env, uint32_t sound, float value)
{
WasmScriptingVM* vm = vmFromEnv(env);
audioSoundSetVolumeImpl(vm, sound, value);
}
uint32_t pathNew(wasm_exec_env_t env)
{
WasmScriptingVM* vm = vmFromEnv(env);
return pathNewImpl(vm);
}
void pathUpdate(wasm_exec_env_t env, uint32_t path, const uint8_t* verbs, uint32_t verbCount, const float* points, uint32_t floatCount, uint32_t fillRule)
{
WasmScriptingVM* vm = vmFromEnv(env);
pathUpdateImpl(vm, path, verbs, verbCount, points, floatCount, fillRule);
}
void pathRelease(wasm_exec_env_t env, uint32_t path)
{
WasmScriptingVM* vm = vmFromEnv(env);
pathReleaseImpl(vm, path);
}
void pathEffectResult(wasm_exec_env_t env, const uint8_t* verbs, uint32_t verbCount, const float* points, uint32_t floatCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
pathEffectResultImpl(vm, verbs, verbCount, points, floatCount);
}
uint32_t measurePathNew(wasm_exec_env_t env, const uint8_t* verbs, uint32_t verbCount, const float* points, uint32_t floatCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return measurePathNewImpl(vm, verbs, verbCount, points, floatCount);
}
uint32_t measureContoursNew(wasm_exec_env_t env, const uint8_t* verbs, uint32_t verbCount, const float* points, uint32_t floatCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return measureContoursNewImpl(vm, verbs, verbCount, points, floatCount);
}
uint32_t measureContourNext(wasm_exec_env_t env, uint32_t measure)
{
WasmScriptingVM* vm = vmFromEnv(env);
return measureContourNextImpl(vm, measure);
}
float measureLength(wasm_exec_env_t env, uint32_t measure)
{
WasmScriptingVM* vm = vmFromEnv(env);
return measureLengthImpl(vm, measure);
}
uint32_t measureIsClosed(wasm_exec_env_t env, uint32_t measure)
{
WasmScriptingVM* vm = vmFromEnv(env);
return measureIsClosedImpl(vm, measure);
}
void measurePosTan(wasm_exec_env_t env, uint32_t measure, float distance, float* out, uint32_t outCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
measurePosTanImpl(vm, measure, distance, out, outCount);
}
void measureWarp(wasm_exec_env_t env, uint32_t measure, float x, float y, float* out, uint32_t outCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
measureWarpImpl(vm, measure, x, y, out, outCount);
}
uint32_t measureExtract(wasm_exec_env_t env, uint32_t measure, float startDistance, float endDistance, uint32_t startWithMove)
{
WasmScriptingVM* vm = vmFromEnv(env);
return measureExtractImpl(vm, measure, startDistance, endDistance, startWithMove);
}
uint32_t measureExtractRead(wasm_exec_env_t env, uint32_t measure, uint8_t* verbs, uint32_t verbCount, float* points, uint32_t floatCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return measureExtractReadImpl(vm, measure, verbs, verbCount, points, floatCount);
}
void measureRelease(wasm_exec_env_t env, uint32_t measure)
{
WasmScriptingVM* vm = vmFromEnv(env);
measureReleaseImpl(vm, measure);
}
uint32_t paintNew(wasm_exec_env_t env)
{
WasmScriptingVM* vm = vmFromEnv(env);
return paintNewImpl(vm);
}
void paintRelease(wasm_exec_env_t env, uint32_t paint)
{
WasmScriptingVM* vm = vmFromEnv(env);
paintReleaseImpl(vm, paint);
}
void paintStyle(wasm_exec_env_t env, uint32_t paint, uint32_t value)
{
WasmScriptingVM* vm = vmFromEnv(env);
paintStyleImpl(vm, paint, value);
}
void paintColor(wasm_exec_env_t env, uint32_t paint, uint32_t value)
{
WasmScriptingVM* vm = vmFromEnv(env);
paintColorImpl(vm, paint, value);
}
void paintThickness(wasm_exec_env_t env, uint32_t paint, float value)
{
WasmScriptingVM* vm = vmFromEnv(env);
paintThicknessImpl(vm, paint, value);
}
void paintJoin(wasm_exec_env_t env, uint32_t paint, uint32_t value)
{
WasmScriptingVM* vm = vmFromEnv(env);
paintJoinImpl(vm, paint, value);
}
void paintCap(wasm_exec_env_t env, uint32_t paint, uint32_t value)
{
WasmScriptingVM* vm = vmFromEnv(env);
paintCapImpl(vm, paint, value);
}
void paintBlendMode(wasm_exec_env_t env, uint32_t paint, uint32_t value)
{
WasmScriptingVM* vm = vmFromEnv(env);
paintBlendModeImpl(vm, paint, value);
}
void paintFeather(wasm_exec_env_t env, uint32_t paint, float value)
{
WasmScriptingVM* vm = vmFromEnv(env);
paintFeatherImpl(vm, paint, value);
}
void paintShader(wasm_exec_env_t env, uint32_t paint, uint32_t shader)
{
WasmScriptingVM* vm = vmFromEnv(env);
paintShaderImpl(vm, paint, shader);
}
uint32_t canvasNew(wasm_exec_env_t env, uint32_t width, uint32_t height)
{
WasmScriptingVM* vm = vmFromEnv(env);
return canvasNewImpl(vm, width, height);
}
void canvasRelease(wasm_exec_env_t env, uint32_t canvas)
{
WasmScriptingVM* vm = vmFromEnv(env);
canvasReleaseImpl(vm, canvas);
}
uint32_t canvasWidth(wasm_exec_env_t env, uint32_t canvas)
{
WasmScriptingVM* vm = vmFromEnv(env);
return canvasWidthImpl(vm, canvas);
}
uint32_t canvasHeight(wasm_exec_env_t env, uint32_t canvas)
{
WasmScriptingVM* vm = vmFromEnv(env);
return canvasHeightImpl(vm, canvas);
}
uint32_t canvasResize(wasm_exec_env_t env, uint32_t canvas, uint32_t width, uint32_t height)
{
WasmScriptingVM* vm = vmFromEnv(env);
return canvasResizeImpl(vm, canvas, width, height);
}
uint32_t canvasImage(wasm_exec_env_t env, uint32_t canvas)
{
WasmScriptingVM* vm = vmFromEnv(env);
return canvasImageImpl(vm, canvas);
}
uint32_t canvasBeginFrame(wasm_exec_env_t env, uint32_t canvas, uint32_t clearColor)
{
WasmScriptingVM* vm = vmFromEnv(env);
return canvasBeginFrameImpl(vm, canvas, clearColor);
}
void canvasEndFrame(wasm_exec_env_t env, uint32_t canvas)
{
WasmScriptingVM* vm = vmFromEnv(env);
canvasEndFrameImpl(vm, canvas);
}
uint32_t gpuFeatures(wasm_exec_env_t env, uint32_t* out, uint32_t outCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return gpuFeaturesImpl(vm, out, outCount);
}
uint32_t gpuCanvasNew(wasm_exec_env_t env, uint32_t width, uint32_t height)
{
WasmScriptingVM* vm = vmFromEnv(env);
return gpuCanvasNewImpl(vm, width, height);
}
void gpuCanvasRelease(wasm_exec_env_t env, uint32_t canvas)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuCanvasReleaseImpl(vm, canvas);
}
uint32_t gpuCanvasColorView(wasm_exec_env_t env, uint32_t canvas, uint32_t* props, uint32_t propCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return gpuCanvasColorViewImpl(vm, canvas, props, propCount);
}
uint32_t gpuCanvasImage(wasm_exec_env_t env, uint32_t canvas)
{
WasmScriptingVM* vm = vmFromEnv(env);
return gpuCanvasImageImpl(vm, canvas);
}
uint32_t gpuCanvasResize(wasm_exec_env_t env, uint32_t canvas, uint32_t width, uint32_t height, uint32_t* props, uint32_t propCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return gpuCanvasResizeImpl(vm, canvas, width, height, props, propCount);
}
uint32_t gpuPassBegin(wasm_exec_env_t env, const rive_gpu_pass_desc_v1* desc, uint32_t descByteCount, const rive_gpu_pass_color_attachment_v1* colors, uint32_t colorByteCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return gpuPassBeginImpl(vm, desc, descByteCount, colors, colorByteCount);
}
void gpuPassSetPipeline(wasm_exec_env_t env, uint32_t pass, uint32_t pipeline)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuPassSetPipelineImpl(vm, pass, pipeline);
}
void gpuPassSetVertexBuffer(wasm_exec_env_t env, uint32_t pass, uint32_t slot, uint32_t buffer, uint32_t offset)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuPassSetVertexBufferImpl(vm, pass, slot, buffer, offset);
}
void gpuPassSetIndexBuffer(wasm_exec_env_t env, uint32_t pass, uint32_t buffer, uint32_t indexFormat, uint32_t offset)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuPassSetIndexBufferImpl(vm, pass, buffer, indexFormat, offset);
}
void gpuPassSetBindGroup(wasm_exec_env_t env, uint32_t pass, uint32_t groupIndex, uint32_t bindGroup, const uint32_t* dynamicOffsets, uint32_t dynamicOffsetByteCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuPassSetBindGroupImpl(vm, pass, groupIndex, bindGroup, dynamicOffsets, dynamicOffsetByteCount);
}
void gpuPassSetViewport(wasm_exec_env_t env, uint32_t pass, float x, float y, float width, float height, float minDepth, float maxDepth)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuPassSetViewportImpl(vm, pass, x, y, width, height, minDepth, maxDepth);
}
void gpuPassSetScissor(wasm_exec_env_t env, uint32_t pass, uint32_t x, uint32_t y, uint32_t width, uint32_t height)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuPassSetScissorImpl(vm, pass, x, y, width, height);
}
void gpuPassSetStencilReference(wasm_exec_env_t env, uint32_t pass, uint32_t ref)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuPassSetStencilReferenceImpl(vm, pass, ref);
}
void gpuPassSetBlendColor(wasm_exec_env_t env, uint32_t pass, float r, float g, float b, float a)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuPassSetBlendColorImpl(vm, pass, r, g, b, a);
}
void gpuPassDraw(wasm_exec_env_t env, uint32_t pass, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuPassDrawImpl(vm, pass, vertexCount, instanceCount, firstVertex, firstInstance);
}
void gpuPassDrawIndexed(wasm_exec_env_t env, uint32_t pass, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuPassDrawIndexedImpl(vm, pass, indexCount, instanceCount, firstIndex, baseVertex, firstInstance);
}
void gpuPassFinish(wasm_exec_env_t env, uint32_t pass)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuPassFinishImpl(vm, pass);
}
void gpuPassRelease(wasm_exec_env_t env, uint32_t pass)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuPassReleaseImpl(vm, pass);
}
uint32_t gpuImageView(wasm_exec_env_t env, uint32_t image, uint32_t width, uint32_t height)
{
WasmScriptingVM* vm = vmFromEnv(env);
return gpuImageViewImpl(vm, image, width, height);
}
uint32_t gpuBufferNew(wasm_exec_env_t env, uint32_t usage, uint32_t sizeInBytes, uint32_t immutable, const uint8_t* data, uint32_t dataCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return gpuBufferNewImpl(vm, usage, sizeInBytes, immutable, data, dataCount);
}
void gpuBufferUpdate(wasm_exec_env_t env, uint32_t buffer, uint32_t dstOffset, const uint8_t* data, uint32_t dataCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuBufferUpdateImpl(vm, buffer, dstOffset, data, dataCount);
}
void gpuBufferRelease(wasm_exec_env_t env, uint32_t buffer)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuBufferReleaseImpl(vm, buffer);
}
uint32_t gpuTextureNew(wasm_exec_env_t env, const rive_gpu_texture_desc_v1* desc, uint32_t descByteCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return gpuTextureNewImpl(vm, desc, descByteCount);
}
void gpuTextureUpload(wasm_exec_env_t env, uint32_t texture, const rive_gpu_texture_upload_v1* region, uint32_t regionByteCount, const uint8_t* data, uint32_t dataCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuTextureUploadImpl(vm, texture, region, regionByteCount, data, dataCount);
}
void gpuTextureRelease(wasm_exec_env_t env, uint32_t texture)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuTextureReleaseImpl(vm, texture);
}
uint32_t gpuSamplerNew(wasm_exec_env_t env, const rive_gpu_sampler_desc_v1* desc, uint32_t descByteCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return gpuSamplerNewImpl(vm, desc, descByteCount);
}
void gpuSamplerRelease(wasm_exec_env_t env, uint32_t sampler)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuSamplerReleaseImpl(vm, sampler);
}
uint32_t gpuTextureViewNew(wasm_exec_env_t env, uint32_t texture, const rive_gpu_texture_view_desc_v1* desc, uint32_t descByteCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return gpuTextureViewNewImpl(vm, texture, desc, descByteCount);
}
void gpuTextureViewRelease(wasm_exec_env_t env, uint32_t view)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuTextureViewReleaseImpl(vm, view);
}
uint32_t gpuShaderTarget(wasm_exec_env_t env)
{
WasmScriptingVM* vm = vmFromEnv(env);
return gpuShaderTargetImpl(vm);
}
uint32_t gpuShaderAssetBytes(wasm_exec_env_t env, uint32_t object, const char* name, uint32_t nameLength, uint8_t* out, uint32_t outCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, nameLength);
return gpuShaderAssetBytesImpl(vm, object, nameUtf8.data(), nameUtf8.size(), out, outCount);
}
uint32_t gpuShaderAssetId(wasm_exec_env_t env, uint32_t object, const char* name, uint32_t nameLength)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, nameLength);
return gpuShaderAssetIdImpl(vm, object, nameUtf8.data(), nameUtf8.size());
}
uint32_t gpuShaderModuleNew(wasm_exec_env_t env, const rive_gpu_shader_module_desc_v1* desc, uint32_t descByteCount, const uint8_t* blob, uint32_t blobCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return gpuShaderModuleNewImpl(vm, desc, descByteCount, blob, blobCount);
}
void gpuShaderModuleRelease(wasm_exec_env_t env, uint32_t shaderModule)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuShaderModuleReleaseImpl(vm, shaderModule);
}
uint32_t gpuBindGroupLayoutNew(wasm_exec_env_t env, uint32_t groupIndex, const rive_gpu_bind_group_layout_entry_v1* entries, uint32_t entryByteCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return gpuBindGroupLayoutNewImpl(vm, groupIndex, entries, entryByteCount);
}
void gpuBindGroupLayoutRelease(wasm_exec_env_t env, uint32_t layout)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuBindGroupLayoutReleaseImpl(vm, layout);
}
uint32_t gpuBindGroupLayoutFromShader(wasm_exec_env_t env, uint32_t shaderModule, uint32_t groupIndex, const uint32_t* dynamicUBOs, uint32_t dynamicUBOCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return gpuBindGroupLayoutFromShaderImpl(vm, shaderModule, groupIndex, dynamicUBOs, dynamicUBOCount);
}
uint32_t gpuBindGroupNew(wasm_exec_env_t env, 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)
{
WasmScriptingVM* vm = vmFromEnv(env);
return gpuBindGroupNewImpl(vm, layout, ubos, uboByteCount, textures, textureByteCount, samplers, samplerByteCount);
}
void gpuBindGroupRelease(wasm_exec_env_t env, uint32_t bindGroup)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuBindGroupReleaseImpl(vm, bindGroup);
}
uint32_t gpuPipelineNew(wasm_exec_env_t env, const rive_gpu_pipeline_desc_v1* desc, uint32_t descByteCount, const uint8_t* blob, uint32_t blobCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
return gpuPipelineNewImpl(vm, desc, descByteCount, blob, blobCount);
}
void gpuPipelineRelease(wasm_exec_env_t env, uint32_t pipeline)
{
WasmScriptingVM* vm = vmFromEnv(env);
gpuPipelineReleaseImpl(vm, pipeline);
}
uint32_t bufferNew(wasm_exec_env_t env, uint32_t bufferType, uint32_t flags, uint32_t sizeInBytes)
{
WasmScriptingVM* vm = vmFromEnv(env);
return bufferNewImpl(vm, bufferType, flags, sizeInBytes);
}
void bufferUpdate(wasm_exec_env_t env, uint32_t buffer, const uint8_t* bytes, uint32_t byteCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
bufferUpdateImpl(vm, buffer, bytes, byteCount);
}
void bufferRelease(wasm_exec_env_t env, uint32_t buffer)
{
WasmScriptingVM* vm = vmFromEnv(env);
bufferReleaseImpl(vm, buffer);
}
uint32_t blobAssetBytes(wasm_exec_env_t env, uint32_t object, const char* name, uint32_t nameLength, uint8_t* out, uint32_t outCount)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, nameLength);
return blobAssetBytesImpl(vm, object, nameUtf8.data(), nameUtf8.size(), out, outCount);
}
uint32_t imageFromAsset(wasm_exec_env_t env, uint32_t object, const char* name, uint32_t length)
{
WasmScriptingVM* vm = vmFromEnv(env);
WasmStringArg nameUtf8(vm, name, length);
return imageFromAssetImpl(vm, object, nameUtf8.data(), nameUtf8.size());
}
uint32_t imageWidth(wasm_exec_env_t env, uint32_t image)
{
WasmScriptingVM* vm = vmFromEnv(env);
return imageWidthImpl(vm, image);
}
uint32_t imageHeight(wasm_exec_env_t env, uint32_t image)
{
WasmScriptingVM* vm = vmFromEnv(env);
return imageHeightImpl(vm, image);
}
void imageRelease(wasm_exec_env_t env, uint32_t image)
{
WasmScriptingVM* vm = vmFromEnv(env);
imageReleaseImpl(vm, image);
}
uint32_t imageDecode(wasm_exec_env_t env, const uint8_t* bytes, uint32_t byteCount, uint32_t token)
{
WasmScriptingVM* vm = vmFromEnv(env);
return imageDecodeImpl(vm, bytes, byteCount, token);
}
void imageDecodeCancel(wasm_exec_env_t env, uint32_t token)
{
WasmScriptingVM* vm = vmFromEnv(env);
imageDecodeCancelImpl(vm, token);
}
uint32_t shaderLinear(wasm_exec_env_t env, float sx, float sy, float ex, float ey, uint32_t colors, uint32_t stops, uint32_t count)
{
WasmScriptingVM* vm = vmFromEnv(env);
return shaderLinearImpl(vm, sx, sy, ex, ey, colors, stops, count);
}
uint32_t shaderRadial(wasm_exec_env_t env, float cx, float cy, float radius, uint32_t colors, uint32_t stops, uint32_t count)
{
WasmScriptingVM* vm = vmFromEnv(env);
return shaderRadialImpl(vm, cx, cy, radius, colors, stops, count);
}
void shaderRelease(wasm_exec_env_t env, uint32_t shader)
{
WasmScriptingVM* vm = vmFromEnv(env);
shaderReleaseImpl(vm, shader);
}
void rendererSave(wasm_exec_env_t env, uint32_t renderer)
{
WasmScriptingVM* vm = vmFromEnv(env);
rendererSaveImpl(vm, renderer);
}
void rendererRestore(wasm_exec_env_t env, uint32_t renderer)
{
WasmScriptingVM* vm = vmFromEnv(env);
rendererRestoreImpl(vm, renderer);
}
void rendererTransform(wasm_exec_env_t env, uint32_t renderer, float xx, float xy, float yx, float yy, float tx, float ty)
{
WasmScriptingVM* vm = vmFromEnv(env);
rendererTransformImpl(vm, renderer, xx, xy, yx, yy, tx, ty);
}
void rendererDrawPath(wasm_exec_env_t env, uint32_t renderer, uint32_t path, uint32_t paint)
{
WasmScriptingVM* vm = vmFromEnv(env);
rendererDrawPathImpl(vm, renderer, path, paint);
}
void rendererClipPath(wasm_exec_env_t env, uint32_t renderer, uint32_t path)
{
WasmScriptingVM* vm = vmFromEnv(env);
rendererClipPathImpl(vm, renderer, path);
}
void rendererModulateColor(wasm_exec_env_t env, uint32_t renderer, uint32_t color, uint32_t replace)
{
WasmScriptingVM* vm = vmFromEnv(env);
rendererModulateColorImpl(vm, renderer, color, replace);
}
void rendererDrawImage(wasm_exec_env_t env, uint32_t renderer, uint32_t image, uint32_t sampler, uint32_t blend, float opacity)
{
WasmScriptingVM* vm = vmFromEnv(env);
rendererDrawImageImpl(vm, renderer, image, sampler, blend, opacity);
}
void rendererDrawImageMesh(wasm_exec_env_t env, uint32_t renderer, uint32_t image, uint32_t sampler, uint32_t vertexBuffer, uint32_t uvBuffer, uint32_t indexBuffer, uint32_t blend, float opacity)
{
WasmScriptingVM* vm = vmFromEnv(env);
rendererDrawImageMeshImpl(vm, renderer, image, sampler, vertexBuffer, uvBuffer, indexBuffer, blend, opacity);
}
NativeSymbol kRtNatives[] = {
{"log", (void*)rtLog, "(i*~)", nullptr},
{"mark_needs_update", (void*)rtMarkNeedsUpdate, "(i)", nullptr},
{"budget_exceeded", (void*)rtBudgetExceeded, "(i)", nullptr},
{"debug_enter", (void*)rtDebugEnter, "(ii)", nullptr},
{"debug_line", (void*)rtDebugLine, "(i)i", nullptr},
{"debug_leave", (void*)rtDebugLeave, "()", nullptr},
{"utc_offset", (void*)rtUtcOffset, "(F)i", nullptr},
{"is_dst", (void*)rtIsDst, "(F)i", nullptr},
{"zone_name", (void*)rtZoneName, "(F*~)i", nullptr},
};
NativeSymbol kDataNatives[] = {
{"view_model", (void*)dataViewModel, "(i)i", nullptr},
{"root_view_model", (void*)dataRootViewModel, "(i)i", nullptr},
{"global_view_model", (void*)dataGlobalViewModel, "(i*~)i", nullptr},
{"global_view_model_names", (void*)dataGlobalViewModelNames, "(i*~)i", nullptr},
{"context", (void*)dataContext, "(i)i", nullptr},
{"context_parent", (void*)dataContextParent, "(i)i", nullptr},
{"context_view_model", (void*)dataContextViewModel, "(i)i", nullptr},
{"context_release", (void*)dataContextRelease, "(i)", nullptr},
{"has_view_model", (void*)dataHasViewModel, "(*~)i", nullptr},
{"new_view_model", (void*)dataNewViewModel, "(*~*~)i", nullptr},
{"vmi_release", (void*)dataVmiRelease, "(i)", nullptr},
{"vmi_number", (void*)dataVmiNumber, "(i*~)i", nullptr},
{"vmi_boolean", (void*)dataVmiBoolean, "(i*~)i", nullptr},
{"vmi_string", (void*)dataVmiString, "(i*~)i", nullptr},
{"vmi_trigger", (void*)dataVmiTrigger, "(i*~)i", nullptr},
{"vmi_color", (void*)dataVmiColor, "(i*~)i", nullptr},
{"vmi_view_model", (void*)dataVmiViewModel, "(i*~)i", nullptr},
{"vmi_property", (void*)dataVmiProperty, "(i*~*~)i", nullptr},
{"vmi_instance", (void*)dataVmiInstance, "(i*~)i", nullptr},
{"vmi_symbol_index", (void*)dataVmiSymbolIndex, "(i)i", nullptr},
{"vmi_equal", (void*)dataVmiEqual, "(ii)i", nullptr},
{"view_model_get", (void*)dataViewModelGet, "(i)i", nullptr},
{"vmi_list", (void*)dataVmiList, "(i*~)i", nullptr},
{"vmi_enum", (void*)dataVmiEnum, "(i*~)i", nullptr},
{"vmi_image", (void*)dataVmiImage, "(i*~)i", nullptr},
{"vmi_font", (void*)dataVmiFont, "(i*~)i", nullptr},
{"vmi_blob", (void*)dataVmiBlob, "(i*~)i", nullptr},
{"image_get", (void*)dataImageGet, "(i)i", nullptr},
{"image_set", (void*)dataImageSet, "(ii)", nullptr},
{"font_get", (void*)dataFontGet, "(i)i", nullptr},
{"font_set", (void*)dataFontSet, "(ii)", nullptr},
{"font_release", (void*)dataFontRelease, "(i)", nullptr},
{"blob_present", (void*)dataBlobPresent, "(i)i", nullptr},
{"blob_get", (void*)dataBlobGet, "(i*~)i", nullptr},
{"blob_name", (void*)dataBlobName, "(i*~)i", nullptr},
{"blob_set", (void*)dataBlobSet, "(i*~)", nullptr},
{"blob_clear", (void*)dataBlobClear, "(i)", nullptr},
{"enum_get", (void*)dataEnumGet, "(i*~)i", nullptr},
{"enum_set", (void*)dataEnumSet, "(i*~)", nullptr},
{"enum_values", (void*)dataEnumValues, "(i*~)i", nullptr},
{"prop_release", (void*)dataPropRelease, "(i)", nullptr},
{"trigger_fire", (void*)dataTriggerFire, "(i)", nullptr},
{"list_length", (void*)dataListLength, "(i)i", nullptr},
{"list_push", (void*)dataListPush, "(ii)", nullptr},
{"list_pop", (void*)dataListPop, "(i)i", nullptr},
{"list_shift", (void*)dataListShift, "(i)i", nullptr},
{"list_clear", (void*)dataListClear, "(i)", nullptr},
{"list_swap", (void*)dataListSwap, "(iii)", nullptr},
{"list_insert", (void*)dataListInsert, "(iii)", nullptr},
{"list_remove", (void*)dataListRemove, "(ii)", nullptr},
{"list_remove_at", (void*)dataListRemoveAt, "(ii)", nullptr},
{"list_remove_all_of", (void*)dataListRemoveAllOf, "(ii)", nullptr},
{"list_get", (void*)dataListGet, "(ii)i", nullptr},
{"view_model_set", (void*)dataViewModelSet, "(ii)", nullptr},
{"color_get", (void*)dataColorGet, "(i)i", nullptr},
{"color_set", (void*)dataColorSet, "(ii)", nullptr},
{"number_get", (void*)dataNumberGet, "(i)f", nullptr},
{"number_set", (void*)dataNumberSet, "(if)", nullptr},
{"boolean_get", (void*)dataBooleanGet, "(i)i", nullptr},
{"boolean_set", (void*)dataBooleanSet, "(ii)", nullptr},
{"string_get", (void*)dataStringGet, "(i*~)i", nullptr},
{"string_set", (void*)dataStringSet, "(i*~)", nullptr},
{"watch", (void*)dataWatch, "(ii)", nullptr},
{"unwatch", (void*)dataUnwatch, "(i)", nullptr},
{"convert_result", (void*)dataConvertResult, "(ifii*~)", nullptr},
};
NativeSymbol kArtboardNatives[] = {
{"release", (void*)artboardRelease, "(i)", nullptr},
{"advance", (void*)artboardAdvance, "(if)i", nullptr},
{"draw", (void*)artboardDraw, "(ii)", nullptr},
{"instance", (void*)artboardInstance, "(ii)i", nullptr},
{"data", (void*)artboardData, "(i)i", nullptr},
{"width", (void*)artboardWidth, "(i)f", nullptr},
{"height", (void*)artboardHeight, "(i)f", nullptr},
{"set_width", (void*)artboardSetWidth, "(if)", nullptr},
{"set_height", (void*)artboardSetHeight, "(if)", nullptr},
{"frame_origin", (void*)artboardFrameOrigin, "(i)i", nullptr},
{"set_frame_origin", (void*)artboardSetFrameOrigin, "(ii)", nullptr},
{"bounds", (void*)artboardBounds, "(i*~)", nullptr},
{"pointer_event", (void*)artboardPointerEvent, "(iiiff)i", nullptr},
{"animation", (void*)artboardAnimation, "(i*~)i", nullptr},
{"animation_release", (void*)artboardAnimationRelease, "(i)", nullptr},
{"animation_duration", (void*)artboardAnimationDuration, "(i)f", nullptr},
{"animation_advance", (void*)artboardAnimationAdvance, "(if)i", nullptr},
{"animation_set_time", (void*)artboardAnimationSetTime, "(ifi)", nullptr},
{"node", (void*)artboardNode, "(i*~)i", nullptr},
{"node_release", (void*)artboardNodeRelease, "(i)", nullptr},
{"node_transform", (void*)artboardNodeTransform, "(i*~)", nullptr},
{"node_set", (void*)artboardNodeSet, "(iiff)", nullptr},
{"node_world_transform", (void*)artboardNodeWorldTransform, "(i*~)", nullptr},
{"node_set_world_transform", (void*)artboardNodeSetWorldTransform, "(i*~)", nullptr},
{"node_decompose", (void*)artboardNodeDecompose, "(i*~)", nullptr},
{"node_path_verbs", (void*)artboardNodePathVerbs, "(i*~)i", nullptr},
{"node_path_points", (void*)artboardNodePathPoints, "(i*~)i", nullptr},
{"node_paint", (void*)artboardNodePaint, "(i*~)i", nullptr},
{"node_children", (void*)artboardNodeChildren, "(i*~)i", nullptr},
{"node_parent", (void*)artboardNodeParent, "(i)i", nullptr},
{"property_key", (void*)artboardPropertyKey, "(i*~)i", nullptr},
{"draw_visit", (void*)artboardDrawVisit, "(ii)", nullptr},
{"draw_modulated", (void*)artboardDrawModulated, "(iii)", nullptr},
{"drawable_draw", (void*)artboardDrawableDraw, "(ii)", nullptr},
{"drawable_value", (void*)artboardDrawableValue, "(ii*~)i", nullptr},
{"drawable_string", (void*)artboardDrawableString, "(ii*~)i", nullptr},
#ifdef WITH_RIVE_TOOLS
{"drawable_properties", (void*)artboardDrawableProperties, "(i*~)i", nullptr},
#endif
};
NativeSymbol kAudioNatives[] = {
{"source", (void*)audioSource, "(i*~)i", nullptr},
{"source_release", (void*)audioSourceRelease, "(i)", nullptr},
{"source_duration", (void*)audioSourceDuration, "(i)f", nullptr},
{"source_sample_rate", (void*)audioSourceSampleRate, "(i)i", nullptr},
{"source_channels", (void*)audioSourceChannels, "(i)i", nullptr},
{"play", (void*)audioPlay, "(i)i", nullptr},
{"play_at_time", (void*)audioPlayAtTime, "(if)i", nullptr},
{"play_in_time", (void*)audioPlayInTime, "(if)i", nullptr},
{"play_at_frame", (void*)audioPlayAtFrame, "(iF)i", nullptr},
{"play_in_frame", (void*)audioPlayInFrame, "(iF)i", nullptr},
{"time", (void*)audioTime, "()f", nullptr},
{"time_frame", (void*)audioTimeFrame, "()F", nullptr},
{"sample_rate", (void*)audioSampleRate, "()i", nullptr},
{"sound_release", (void*)audioSoundRelease, "(i)", nullptr},
{"sound_play", (void*)audioSoundPlay, "(i)", nullptr},
{"sound_pause", (void*)audioSoundPause, "(i)", nullptr},
{"sound_resume", (void*)audioSoundResume, "(i)", nullptr},
{"sound_stop", (void*)audioSoundStop, "(ii)", nullptr},
{"sound_seek", (void*)audioSoundSeek, "(if)i", nullptr},
{"sound_seek_frame", (void*)audioSoundSeekFrame, "(iF)i", nullptr},
{"sound_completed", (void*)audioSoundCompleted, "(i)i", nullptr},
{"sound_time", (void*)audioSoundTime, "(i)f", nullptr},
{"sound_time_frame", (void*)audioSoundTimeFrame, "(i)F", nullptr},
{"sound_volume", (void*)audioSoundVolume, "(i)f", nullptr},
{"sound_set_volume", (void*)audioSoundSetVolume, "(if)", nullptr},
};
NativeSymbol kPathNatives[] = {
{"new", (void*)pathNew, "()i", nullptr},
{"update", (void*)pathUpdate, "(i*~*~i)", nullptr},
{"release", (void*)pathRelease, "(i)", nullptr},
{"effect_result", (void*)pathEffectResult, "(*~*~)", nullptr},
};
NativeSymbol kMeasureNatives[] = {
{"path_new", (void*)measurePathNew, "(*~*~)i", nullptr},
{"contours_new", (void*)measureContoursNew, "(*~*~)i", nullptr},
{"contour_next", (void*)measureContourNext, "(i)i", nullptr},
{"length", (void*)measureLength, "(i)f", nullptr},
{"is_closed", (void*)measureIsClosed, "(i)i", nullptr},
{"pos_tan", (void*)measurePosTan, "(if*~)", nullptr},
{"warp", (void*)measureWarp, "(iff*~)", nullptr},
{"extract", (void*)measureExtract, "(iffi)i", nullptr},
{"extract_read", (void*)measureExtractRead, "(i*~*~)i", nullptr},
{"release", (void*)measureRelease, "(i)", nullptr},
};
NativeSymbol kPaintNatives[] = {
{"new", (void*)paintNew, "()i", nullptr},
{"release", (void*)paintRelease, "(i)", nullptr},
{"style", (void*)paintStyle, "(ii)", nullptr},
{"color", (void*)paintColor, "(ii)", nullptr},
{"thickness", (void*)paintThickness, "(if)", nullptr},
{"join", (void*)paintJoin, "(ii)", nullptr},
{"cap", (void*)paintCap, "(ii)", nullptr},
{"blend_mode", (void*)paintBlendMode, "(ii)", nullptr},
{"feather", (void*)paintFeather, "(if)", nullptr},
{"shader", (void*)paintShader, "(ii)", nullptr},
};
NativeSymbol kCanvasNatives[] = {
{"new", (void*)canvasNew, "(ii)i", nullptr},
{"release", (void*)canvasRelease, "(i)", nullptr},
{"width", (void*)canvasWidth, "(i)i", nullptr},
{"height", (void*)canvasHeight, "(i)i", nullptr},
{"resize", (void*)canvasResize, "(iii)i", nullptr},
{"image", (void*)canvasImage, "(i)i", nullptr},
{"begin_frame", (void*)canvasBeginFrame, "(ii)i", nullptr},
{"end_frame", (void*)canvasEndFrame, "(i)", nullptr},
};
NativeSymbol kGpuNatives[] = {
{"features", (void*)gpuFeatures, "(*~)i", nullptr},
{"canvas_new", (void*)gpuCanvasNew, "(ii)i", nullptr},
{"canvas_release", (void*)gpuCanvasRelease, "(i)", nullptr},
{"canvas_color_view", (void*)gpuCanvasColorView, "(i*~)i", nullptr},
{"canvas_image", (void*)gpuCanvasImage, "(i)i", nullptr},
{"canvas_resize", (void*)gpuCanvasResize, "(iii*~)i", nullptr},
{"pass_begin", (void*)gpuPassBegin, "(*~*~)i", nullptr},
{"pass_set_pipeline", (void*)gpuPassSetPipeline, "(ii)", nullptr},
{"pass_set_vertex_buffer", (void*)gpuPassSetVertexBuffer, "(iiii)", nullptr},
{"pass_set_index_buffer", (void*)gpuPassSetIndexBuffer, "(iiii)", nullptr},
{"pass_set_bind_group", (void*)gpuPassSetBindGroup, "(iii*~)", nullptr},
{"pass_set_viewport", (void*)gpuPassSetViewport, "(iffffff)", nullptr},
{"pass_set_scissor", (void*)gpuPassSetScissor, "(iiiii)", nullptr},
{"pass_set_stencil_reference", (void*)gpuPassSetStencilReference, "(ii)", nullptr},
{"pass_set_blend_color", (void*)gpuPassSetBlendColor, "(iffff)", nullptr},
{"pass_draw", (void*)gpuPassDraw, "(iiiii)", nullptr},
{"pass_draw_indexed", (void*)gpuPassDrawIndexed, "(iiiiii)", nullptr},
{"pass_finish", (void*)gpuPassFinish, "(i)", nullptr},
{"pass_release", (void*)gpuPassRelease, "(i)", nullptr},
{"image_view", (void*)gpuImageView, "(iii)i", nullptr},
{"buffer_new", (void*)gpuBufferNew, "(iii*~)i", nullptr},
{"buffer_update", (void*)gpuBufferUpdate, "(ii*~)", nullptr},
{"buffer_release", (void*)gpuBufferRelease, "(i)", nullptr},
{"texture_new", (void*)gpuTextureNew, "(*~)i", nullptr},
{"texture_upload", (void*)gpuTextureUpload, "(i*~*~)", nullptr},
{"texture_release", (void*)gpuTextureRelease, "(i)", nullptr},
{"sampler_new", (void*)gpuSamplerNew, "(*~)i", nullptr},
{"sampler_release", (void*)gpuSamplerRelease, "(i)", nullptr},
{"texture_view_new", (void*)gpuTextureViewNew, "(i*~)i", nullptr},
{"texture_view_release", (void*)gpuTextureViewRelease, "(i)", nullptr},
{"shader_target", (void*)gpuShaderTarget, "()i", nullptr},
{"shader_asset_bytes", (void*)gpuShaderAssetBytes, "(i*~*~)i", nullptr},
{"shader_asset_id", (void*)gpuShaderAssetId, "(i*~)i", nullptr},
{"shader_module_new", (void*)gpuShaderModuleNew, "(*~*~)i", nullptr},
{"shader_module_release", (void*)gpuShaderModuleRelease, "(i)", nullptr},
{"bind_group_layout_new", (void*)gpuBindGroupLayoutNew, "(i*~)i", nullptr},
{"bind_group_layout_release", (void*)gpuBindGroupLayoutRelease, "(i)", nullptr},
{"bind_group_layout_from_shader", (void*)gpuBindGroupLayoutFromShader, "(ii*~)i", nullptr},
{"bind_group_new", (void*)gpuBindGroupNew, "(i*~*~*~)i", nullptr},
{"bind_group_release", (void*)gpuBindGroupRelease, "(i)", nullptr},
{"pipeline_new", (void*)gpuPipelineNew, "(*~*~)i", nullptr},
{"pipeline_release", (void*)gpuPipelineRelease, "(i)", nullptr},
};
NativeSymbol kBufferNatives[] = {
{"new", (void*)bufferNew, "(iii)i", nullptr},
{"update", (void*)bufferUpdate, "(i*~)", nullptr},
{"release", (void*)bufferRelease, "(i)", nullptr},
};
NativeSymbol kBlobNatives[] = {
{"asset_bytes", (void*)blobAssetBytes, "(i*~*~)i", nullptr},
};
NativeSymbol kImageNatives[] = {
{"from_asset", (void*)imageFromAsset, "(i*~)i", nullptr},
{"width", (void*)imageWidth, "(i)i", nullptr},
{"height", (void*)imageHeight, "(i)i", nullptr},
{"release", (void*)imageRelease, "(i)", nullptr},
{"decode", (void*)imageDecode, "(*~i)i", nullptr},
{"decode_cancel", (void*)imageDecodeCancel, "(i)", nullptr},
};
NativeSymbol kShaderNatives[] = {
{"linear", (void*)shaderLinear, "(ffffiii)i", nullptr},
{"radial", (void*)shaderRadial, "(fffiii)i", nullptr},
{"release", (void*)shaderRelease, "(i)", nullptr},
};
NativeSymbol kRendererNatives[] = {
{"save", (void*)rendererSave, "(i)", nullptr},
{"restore", (void*)rendererRestore, "(i)", nullptr},
{"transform", (void*)rendererTransform, "(iffffff)", nullptr},
{"draw_path", (void*)rendererDrawPath, "(iii)", nullptr},
{"clip_path", (void*)rendererClipPath, "(ii)", nullptr},
{"modulate_color", (void*)rendererModulateColor, "(iii)", nullptr},
{"draw_image", (void*)rendererDrawImage, "(iiiif)", nullptr},
{"draw_image_mesh", (void*)rendererDrawImageMesh, "(iiiiiiif)", nullptr},
};
inline bool registerRiveBindingNatives()
{
return wasm_runtime_register_natives(
"rive_rt_v1",
kRtNatives,
sizeof(kRtNatives) / sizeof(NativeSymbol)) &&
wasm_runtime_register_natives(
"rive_data_v1",
kDataNatives,
sizeof(kDataNatives) / sizeof(NativeSymbol)) &&
wasm_runtime_register_natives(
"rive_artboard_v1",
kArtboardNatives,
sizeof(kArtboardNatives) / sizeof(NativeSymbol)) &&
wasm_runtime_register_natives(
"rive_audio_v1",
kAudioNatives,
sizeof(kAudioNatives) / sizeof(NativeSymbol)) &&
wasm_runtime_register_natives(
"rive_path_v1",
kPathNatives,
sizeof(kPathNatives) / sizeof(NativeSymbol)) &&
wasm_runtime_register_natives(
"rive_measure_v1",
kMeasureNatives,
sizeof(kMeasureNatives) / sizeof(NativeSymbol)) &&
wasm_runtime_register_natives(
"rive_paint_v1",
kPaintNatives,
sizeof(kPaintNatives) / sizeof(NativeSymbol)) &&
wasm_runtime_register_natives(
"rive_canvas_v1",
kCanvasNatives,
sizeof(kCanvasNatives) / sizeof(NativeSymbol)) &&
wasm_runtime_register_natives(
"rive_gpu_v1",
kGpuNatives,
sizeof(kGpuNatives) / sizeof(NativeSymbol)) &&
wasm_runtime_register_natives(
"rive_buffer_v1",
kBufferNatives,
sizeof(kBufferNatives) / sizeof(NativeSymbol)) &&
wasm_runtime_register_natives(
"rive_blob_v1",
kBlobNatives,
sizeof(kBlobNatives) / sizeof(NativeSymbol)) &&
wasm_runtime_register_natives(
"rive_image_v1",
kImageNatives,
sizeof(kImageNatives) / sizeof(NativeSymbol)) &&
wasm_runtime_register_natives(
"rive_shader_v1",
kShaderNatives,
sizeof(kShaderNatives) / sizeof(NativeSymbol)) &&
wasm_runtime_register_natives(
"rive_renderer_v1",
kRendererNatives,
sizeof(kRendererNatives) / sizeof(NativeSymbol));
}