blob: f59c5479f48e82d989391be749e4f7afeacd06bd [file]
// Generated by src/wasm/idl/generate.py from bindings.py. Do not edit.
//
// Browser-lane host entry points: one exported C symbol per op,
// taking the owning VM as a u32 handle plus the native-convention
// args (pointers are librive-heap pointers, exactly what
// web/rive_module_imports.mjs stages into). Included at the end of
// wasm_scripting_vm.cpp so the impl cores are visible; expands to
// nothing off emscripten.
// clang-format off
#ifdef __EMSCRIPTEN__
#include <emscripten/emscripten.h>
extern "C" {
EMSCRIPTEN_KEEPALIVE
void rive_web_rt_log(uint32_t vmHandle, int32_t level, const char* message, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg messageUtf8(vm, message, length);
rtLogImpl(vm, level, messageUtf8.data(), messageUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
void rive_web_rt_mark_needs_update(uint32_t vmHandle, uint32_t object)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
rtMarkNeedsUpdateImpl(vm, object);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_rt_budget_exceeded(uint32_t vmHandle, uint32_t ms)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
rtBudgetExceededImpl(vm, ms);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_rt_debug_enter(uint32_t vmHandle, uint32_t func, uint32_t line)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
rtDebugEnterImpl(vm, func, line);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_rt_debug_line(uint32_t vmHandle, uint32_t line)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return rtDebugLineImpl(vm, line);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_rt_debug_leave(uint32_t vmHandle)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
rtDebugLeaveImpl(vm);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_rt_utc_offset(uint32_t vmHandle, double epochSeconds)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return rtUtcOffsetImpl(vm, epochSeconds);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_rt_is_dst(uint32_t vmHandle, double epochSeconds)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return rtIsDstImpl(vm, epochSeconds);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_rt_zone_name(uint32_t vmHandle, double epochSeconds, char* buffer, uint32_t capacity)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return rtZoneNameImpl(vm, epochSeconds, buffer, capacity);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_view_model(uint32_t vmHandle, uint32_t object)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataViewModelImpl(vm, object);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_root_view_model(uint32_t vmHandle, uint32_t object)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataRootViewModelImpl(vm, object);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_global_view_model(uint32_t vmHandle, uint32_t object, const char* name, uint32_t nameLength)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, nameLength);
return dataGlobalViewModelImpl(vm, object, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_global_view_model_names(uint32_t vmHandle, uint32_t object, char* buffer, uint32_t capacity)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataGlobalViewModelNamesImpl(vm, object, buffer, capacity);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_context(uint32_t vmHandle, uint32_t object)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataContextImpl(vm, object);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_context_parent(uint32_t vmHandle, uint32_t dataContext)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataContextParentImpl(vm, dataContext);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_context_view_model(uint32_t vmHandle, uint32_t dataContext)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataContextViewModelImpl(vm, dataContext);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_context_release(uint32_t vmHandle, uint32_t dataContext)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataContextReleaseImpl(vm, dataContext);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_has_view_model(uint32_t vmHandle, const char* name, uint32_t nameLength)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, nameLength);
return dataHasViewModelImpl(vm, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_new_view_model(uint32_t vmHandle, const char* name, uint32_t nameLength, const char* templateName, uint32_t templateLength)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, nameLength);
WasmStringArg templateNameUtf8(vm, templateName, templateLength);
return dataNewViewModelImpl(vm, nameUtf8.data(), nameUtf8.size(), templateNameUtf8.data(), templateNameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_vmi_release(uint32_t vmHandle, uint32_t vmi)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataVmiReleaseImpl(vm, vmi);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_vmi_number(uint32_t vmHandle, uint32_t vmi, const char* name, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, length);
return dataVmiNumberImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_vmi_boolean(uint32_t vmHandle, uint32_t vmi, const char* name, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, length);
return dataVmiBooleanImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_vmi_string(uint32_t vmHandle, uint32_t vmi, const char* name, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, length);
return dataVmiStringImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_vmi_trigger(uint32_t vmHandle, uint32_t vmi, const char* name, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, length);
return dataVmiTriggerImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_vmi_color(uint32_t vmHandle, uint32_t vmi, const char* name, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, length);
return dataVmiColorImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_vmi_view_model(uint32_t vmHandle, uint32_t vmi, const char* name, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, length);
return dataVmiViewModelImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_vmi_property(uint32_t vmHandle, uint32_t vmi, const char* name, uint32_t length, uint32_t* kindOut, uint32_t kindCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, length);
return dataVmiPropertyImpl(vm, vmi, nameUtf8.data(), nameUtf8.size(), kindOut, kindCount);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_vmi_instance(uint32_t vmHandle, uint32_t vmi, const char* name, uint32_t nameLength)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, nameLength);
return dataVmiInstanceImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_vmi_symbol_index(uint32_t vmHandle, uint32_t vmi)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataVmiSymbolIndexImpl(vm, vmi);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_vmi_equal(uint32_t vmHandle, uint32_t a, uint32_t b)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataVmiEqualImpl(vm, a, b);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_view_model_get(uint32_t vmHandle, uint32_t property)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataViewModelGetImpl(vm, property);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_vmi_list(uint32_t vmHandle, uint32_t vmi, const char* name, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, length);
return dataVmiListImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_vmi_enum(uint32_t vmHandle, uint32_t vmi, const char* name, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, length);
return dataVmiEnumImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_vmi_image(uint32_t vmHandle, uint32_t vmi, const char* name, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, length);
return dataVmiImageImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_vmi_font(uint32_t vmHandle, uint32_t vmi, const char* name, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, length);
return dataVmiFontImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_vmi_blob(uint32_t vmHandle, uint32_t vmi, const char* name, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, length);
return dataVmiBlobImpl(vm, vmi, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_image_get(uint32_t vmHandle, uint32_t property)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataImageGetImpl(vm, property);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_image_set(uint32_t vmHandle, uint32_t property, uint32_t image)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataImageSetImpl(vm, property, image);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_font_get(uint32_t vmHandle, uint32_t property)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataFontGetImpl(vm, property);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_font_set(uint32_t vmHandle, uint32_t property, uint32_t font)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataFontSetImpl(vm, property, font);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_font_release(uint32_t vmHandle, uint32_t font)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataFontReleaseImpl(vm, font);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_blob_present(uint32_t vmHandle, uint32_t property)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataBlobPresentImpl(vm, property);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_blob_get(uint32_t vmHandle, uint32_t property, uint8_t* buffer, uint32_t capacity)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataBlobGetImpl(vm, property, buffer, capacity);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_blob_name(uint32_t vmHandle, uint32_t property, char* buffer, uint32_t capacity)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataBlobNameImpl(vm, property, buffer, capacity);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_blob_set(uint32_t vmHandle, uint32_t property, const uint8_t* bytes, uint32_t byteCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataBlobSetImpl(vm, property, bytes, byteCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_blob_clear(uint32_t vmHandle, uint32_t property)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataBlobClearImpl(vm, property);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_enum_get(uint32_t vmHandle, uint32_t property, char* buffer, uint32_t capacity)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataEnumGetImpl(vm, property, buffer, capacity);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_enum_set(uint32_t vmHandle, uint32_t property, const char* value, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg valueUtf8(vm, value, length);
dataEnumSetImpl(vm, property, valueUtf8.data(), valueUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_enum_values(uint32_t vmHandle, uint32_t property, char* buffer, uint32_t capacity)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataEnumValuesImpl(vm, property, buffer, capacity);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_prop_release(uint32_t vmHandle, uint32_t property)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataPropReleaseImpl(vm, property);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_trigger_fire(uint32_t vmHandle, uint32_t property)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataTriggerFireImpl(vm, property);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_list_length(uint32_t vmHandle, uint32_t property)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataListLengthImpl(vm, property);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_list_push(uint32_t vmHandle, uint32_t property, uint32_t vmi)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataListPushImpl(vm, property, vmi);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_list_pop(uint32_t vmHandle, uint32_t property)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataListPopImpl(vm, property);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_list_shift(uint32_t vmHandle, uint32_t property)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataListShiftImpl(vm, property);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_list_clear(uint32_t vmHandle, uint32_t property)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataListClearImpl(vm, property);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_list_swap(uint32_t vmHandle, uint32_t property, uint32_t index1, uint32_t index2)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataListSwapImpl(vm, property, index1, index2);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_list_insert(uint32_t vmHandle, uint32_t property, uint32_t vmi, uint32_t index)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataListInsertImpl(vm, property, vmi, index);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_list_remove(uint32_t vmHandle, uint32_t property, uint32_t vmi)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataListRemoveImpl(vm, property, vmi);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_list_remove_at(uint32_t vmHandle, uint32_t property, uint32_t index)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataListRemoveAtImpl(vm, property, index);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_list_remove_all_of(uint32_t vmHandle, uint32_t property, uint32_t vmi)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataListRemoveAllOfImpl(vm, property, vmi);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_list_get(uint32_t vmHandle, uint32_t property, uint32_t index)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataListGetImpl(vm, property, index);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_view_model_set(uint32_t vmHandle, uint32_t property, uint32_t vmi)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataViewModelSetImpl(vm, property, vmi);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_color_get(uint32_t vmHandle, uint32_t property)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataColorGetImpl(vm, property);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_color_set(uint32_t vmHandle, uint32_t property, uint32_t value)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataColorSetImpl(vm, property, value);
}
EMSCRIPTEN_KEEPALIVE
float rive_web_data_number_get(uint32_t vmHandle, uint32_t property)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataNumberGetImpl(vm, property);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_number_set(uint32_t vmHandle, uint32_t property, float value)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataNumberSetImpl(vm, property, value);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_boolean_get(uint32_t vmHandle, uint32_t property)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataBooleanGetImpl(vm, property);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_boolean_set(uint32_t vmHandle, uint32_t property, uint32_t value)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataBooleanSetImpl(vm, property, value);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_data_string_get(uint32_t vmHandle, uint32_t property, char* buffer, uint32_t capacity)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return dataStringGetImpl(vm, property, buffer, capacity);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_string_set(uint32_t vmHandle, uint32_t property, const char* value, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg valueUtf8(vm, value, length);
dataStringSetImpl(vm, property, valueUtf8.data(), valueUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_watch(uint32_t vmHandle, uint32_t property, uint32_t token)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataWatchImpl(vm, property, token);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_unwatch(uint32_t vmHandle, uint32_t property)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
dataUnwatchImpl(vm, property);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_data_convert_result(uint32_t vmHandle, uint32_t kind, float number, uint32_t booleanValue, uint32_t color, const char* value, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg valueUtf8(vm, value, length);
dataConvertResultImpl(vm, kind, number, booleanValue, color, valueUtf8.data(), valueUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
void rive_web_artboard_release(uint32_t vmHandle, uint32_t artboard)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
artboardReleaseImpl(vm, artboard);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_artboard_advance(uint32_t vmHandle, uint32_t artboard, float seconds)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return artboardAdvanceImpl(vm, artboard, seconds);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_artboard_draw(uint32_t vmHandle, uint32_t artboard, uint32_t renderer)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
artboardDrawImpl(vm, artboard, renderer);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_artboard_instance(uint32_t vmHandle, uint32_t artboard, uint32_t vmi)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return artboardInstanceImpl(vm, artboard, vmi);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_artboard_data(uint32_t vmHandle, uint32_t artboard)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return artboardDataImpl(vm, artboard);
}
EMSCRIPTEN_KEEPALIVE
float rive_web_artboard_width(uint32_t vmHandle, uint32_t artboard)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return artboardWidthImpl(vm, artboard);
}
EMSCRIPTEN_KEEPALIVE
float rive_web_artboard_height(uint32_t vmHandle, uint32_t artboard)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return artboardHeightImpl(vm, artboard);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_artboard_set_width(uint32_t vmHandle, uint32_t artboard, float value)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
artboardSetWidthImpl(vm, artboard, value);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_artboard_set_height(uint32_t vmHandle, uint32_t artboard, float value)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
artboardSetHeightImpl(vm, artboard, value);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_artboard_frame_origin(uint32_t vmHandle, uint32_t artboard)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return artboardFrameOriginImpl(vm, artboard);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_artboard_set_frame_origin(uint32_t vmHandle, uint32_t artboard, uint32_t value)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
artboardSetFrameOriginImpl(vm, artboard, value);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_artboard_bounds(uint32_t vmHandle, uint32_t artboard, float* out, uint32_t outCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
artboardBoundsImpl(vm, artboard, out, outCount);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_artboard_pointer_event(uint32_t vmHandle, uint32_t artboard, uint32_t kind, uint32_t pointerId, float x, float y)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return artboardPointerEventImpl(vm, artboard, kind, pointerId, x, y);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_artboard_animation(uint32_t vmHandle, uint32_t artboard, const char* name, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, length);
return artboardAnimationImpl(vm, artboard, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
void rive_web_artboard_animation_release(uint32_t vmHandle, uint32_t animation)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
artboardAnimationReleaseImpl(vm, animation);
}
EMSCRIPTEN_KEEPALIVE
float rive_web_artboard_animation_duration(uint32_t vmHandle, uint32_t animation)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return artboardAnimationDurationImpl(vm, animation);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_artboard_animation_advance(uint32_t vmHandle, uint32_t animation, float seconds)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return artboardAnimationAdvanceImpl(vm, animation, seconds);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_artboard_animation_set_time(uint32_t vmHandle, uint32_t animation, float value, uint32_t mode)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
artboardAnimationSetTimeImpl(vm, animation, value, mode);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_artboard_node(uint32_t vmHandle, uint32_t artboard, const char* name, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, length);
return artboardNodeImpl(vm, artboard, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
void rive_web_artboard_node_release(uint32_t vmHandle, uint32_t node)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
artboardNodeReleaseImpl(vm, node);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_artboard_node_transform(uint32_t vmHandle, uint32_t node, float* out, uint32_t outCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
artboardNodeTransformImpl(vm, node, out, outCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_artboard_node_set(uint32_t vmHandle, uint32_t node, uint32_t field, float v0, float v1)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
artboardNodeSetImpl(vm, node, field, v0, v1);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_artboard_node_world_transform(uint32_t vmHandle, uint32_t node, float* out, uint32_t outCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
artboardNodeWorldTransformImpl(vm, node, out, outCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_artboard_node_set_world_transform(uint32_t vmHandle, uint32_t node, const float* values, uint32_t floatCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
artboardNodeSetWorldTransformImpl(vm, node, values, floatCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_artboard_node_decompose(uint32_t vmHandle, uint32_t node, const float* values, uint32_t floatCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
artboardNodeDecomposeImpl(vm, node, values, floatCount);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_artboard_node_path_verbs(uint32_t vmHandle, uint32_t node, uint8_t* out, uint32_t outCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return artboardNodePathVerbsImpl(vm, node, out, outCount);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_artboard_node_path_points(uint32_t vmHandle, uint32_t node, float* out, uint32_t outCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return artboardNodePathPointsImpl(vm, node, out, outCount);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_artboard_node_paint(uint32_t vmHandle, uint32_t node, uint32_t* out, uint32_t outCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return artboardNodePaintImpl(vm, node, out, outCount);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_artboard_node_children(uint32_t vmHandle, uint32_t node, uint32_t* out, uint32_t outCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return artboardNodeChildrenImpl(vm, node, out, outCount);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_artboard_node_parent(uint32_t vmHandle, uint32_t node)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return artboardNodeParentImpl(vm, node);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_artboard_property_key(uint32_t vmHandle, uint32_t artboard, const char* name, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, length);
return artboardPropertyKeyImpl(vm, artboard, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
void rive_web_artboard_draw_visit(uint32_t vmHandle, uint32_t artboard, uint32_t renderer)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
artboardDrawVisitImpl(vm, artboard, renderer);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_artboard_draw_modulated(uint32_t vmHandle, uint32_t artboard, uint32_t renderer, uint32_t key)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
artboardDrawModulatedImpl(vm, artboard, renderer, key);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_artboard_drawable_draw(uint32_t vmHandle, uint32_t drawable, uint32_t renderer)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
artboardDrawableDrawImpl(vm, drawable, renderer);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_artboard_drawable_value(uint32_t vmHandle, uint32_t drawable, uint32_t key, uint32_t* out, uint32_t outCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return artboardDrawableValueImpl(vm, drawable, key, out, outCount);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_artboard_drawable_string(uint32_t vmHandle, uint32_t drawable, uint32_t key, char* out, uint32_t outCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return artboardDrawableStringImpl(vm, drawable, key, out, outCount);
}
#ifdef WITH_RIVE_TOOLS
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_artboard_drawable_properties(uint32_t vmHandle, uint32_t drawable, char* out, uint32_t outCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return artboardDrawablePropertiesImpl(vm, drawable, out, outCount);
}
#endif
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_audio_source(uint32_t vmHandle, uint32_t object, const char* name, uint32_t nameLength)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, nameLength);
return audioSourceImpl(vm, object, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
void rive_web_audio_source_release(uint32_t vmHandle, uint32_t source)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
audioSourceReleaseImpl(vm, source);
}
EMSCRIPTEN_KEEPALIVE
float rive_web_audio_source_duration(uint32_t vmHandle, uint32_t source)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return audioSourceDurationImpl(vm, source);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_audio_source_sample_rate(uint32_t vmHandle, uint32_t source)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return audioSourceSampleRateImpl(vm, source);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_audio_source_channels(uint32_t vmHandle, uint32_t source)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return audioSourceChannelsImpl(vm, source);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_audio_play(uint32_t vmHandle, uint32_t source)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return audioPlayImpl(vm, source);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_audio_play_at_time(uint32_t vmHandle, uint32_t source, float seconds)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return audioPlayAtTimeImpl(vm, source, seconds);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_audio_play_in_time(uint32_t vmHandle, uint32_t source, float seconds)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return audioPlayInTimeImpl(vm, source, seconds);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_audio_play_at_frame(uint32_t vmHandle, uint32_t source, double frame)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return audioPlayAtFrameImpl(vm, source, frame);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_audio_play_in_frame(uint32_t vmHandle, uint32_t source, double frame)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return audioPlayInFrameImpl(vm, source, frame);
}
EMSCRIPTEN_KEEPALIVE
float rive_web_audio_time(uint32_t vmHandle)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return audioTimeImpl(vm);
}
EMSCRIPTEN_KEEPALIVE
double rive_web_audio_time_frame(uint32_t vmHandle)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return audioTimeFrameImpl(vm);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_audio_sample_rate(uint32_t vmHandle)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return audioSampleRateImpl(vm);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_audio_sound_release(uint32_t vmHandle, uint32_t sound)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
audioSoundReleaseImpl(vm, sound);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_audio_sound_play(uint32_t vmHandle, uint32_t sound)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
audioSoundPlayImpl(vm, sound);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_audio_sound_pause(uint32_t vmHandle, uint32_t sound)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
audioSoundPauseImpl(vm, sound);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_audio_sound_resume(uint32_t vmHandle, uint32_t sound)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
audioSoundResumeImpl(vm, sound);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_audio_sound_stop(uint32_t vmHandle, uint32_t sound, uint32_t fadeFrames)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
audioSoundStopImpl(vm, sound, fadeFrames);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_audio_sound_seek(uint32_t vmHandle, uint32_t sound, float seconds)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return audioSoundSeekImpl(vm, sound, seconds);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_audio_sound_seek_frame(uint32_t vmHandle, uint32_t sound, double frame)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return audioSoundSeekFrameImpl(vm, sound, frame);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_audio_sound_completed(uint32_t vmHandle, uint32_t sound)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return audioSoundCompletedImpl(vm, sound);
}
EMSCRIPTEN_KEEPALIVE
float rive_web_audio_sound_time(uint32_t vmHandle, uint32_t sound)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return audioSoundTimeImpl(vm, sound);
}
EMSCRIPTEN_KEEPALIVE
double rive_web_audio_sound_time_frame(uint32_t vmHandle, uint32_t sound)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return audioSoundTimeFrameImpl(vm, sound);
}
EMSCRIPTEN_KEEPALIVE
float rive_web_audio_sound_volume(uint32_t vmHandle, uint32_t sound)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return audioSoundVolumeImpl(vm, sound);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_audio_sound_set_volume(uint32_t vmHandle, uint32_t sound, float value)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
audioSoundSetVolumeImpl(vm, sound, value);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_path_new(uint32_t vmHandle)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return pathNewImpl(vm);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_path_update(uint32_t vmHandle, uint32_t path, const uint8_t* verbs, uint32_t verbCount, const float* points, uint32_t floatCount, uint32_t fillRule)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
pathUpdateImpl(vm, path, verbs, verbCount, points, floatCount, fillRule);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_path_release(uint32_t vmHandle, uint32_t path)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
pathReleaseImpl(vm, path);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_path_effect_result(uint32_t vmHandle, const uint8_t* verbs, uint32_t verbCount, const float* points, uint32_t floatCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
pathEffectResultImpl(vm, verbs, verbCount, points, floatCount);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_measure_path_new(uint32_t vmHandle, const uint8_t* verbs, uint32_t verbCount, const float* points, uint32_t floatCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return measurePathNewImpl(vm, verbs, verbCount, points, floatCount);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_measure_contours_new(uint32_t vmHandle, const uint8_t* verbs, uint32_t verbCount, const float* points, uint32_t floatCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return measureContoursNewImpl(vm, verbs, verbCount, points, floatCount);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_measure_contour_next(uint32_t vmHandle, uint32_t measure)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return measureContourNextImpl(vm, measure);
}
EMSCRIPTEN_KEEPALIVE
float rive_web_measure_length(uint32_t vmHandle, uint32_t measure)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return measureLengthImpl(vm, measure);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_measure_is_closed(uint32_t vmHandle, uint32_t measure)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return measureIsClosedImpl(vm, measure);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_measure_pos_tan(uint32_t vmHandle, uint32_t measure, float distance, float* out, uint32_t outCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
measurePosTanImpl(vm, measure, distance, out, outCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_measure_warp(uint32_t vmHandle, uint32_t measure, float x, float y, float* out, uint32_t outCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
measureWarpImpl(vm, measure, x, y, out, outCount);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_measure_extract(uint32_t vmHandle, uint32_t measure, float startDistance, float endDistance, uint32_t startWithMove)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return measureExtractImpl(vm, measure, startDistance, endDistance, startWithMove);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_measure_extract_read(uint32_t vmHandle, uint32_t measure, uint8_t* verbs, uint32_t verbCount, float* points, uint32_t floatCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return measureExtractReadImpl(vm, measure, verbs, verbCount, points, floatCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_measure_release(uint32_t vmHandle, uint32_t measure)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
measureReleaseImpl(vm, measure);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_paint_new(uint32_t vmHandle)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return paintNewImpl(vm);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_paint_release(uint32_t vmHandle, uint32_t paint)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
paintReleaseImpl(vm, paint);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_paint_style(uint32_t vmHandle, uint32_t paint, uint32_t value)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
paintStyleImpl(vm, paint, value);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_paint_color(uint32_t vmHandle, uint32_t paint, uint32_t value)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
paintColorImpl(vm, paint, value);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_paint_thickness(uint32_t vmHandle, uint32_t paint, float value)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
paintThicknessImpl(vm, paint, value);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_paint_join(uint32_t vmHandle, uint32_t paint, uint32_t value)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
paintJoinImpl(vm, paint, value);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_paint_cap(uint32_t vmHandle, uint32_t paint, uint32_t value)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
paintCapImpl(vm, paint, value);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_paint_blend_mode(uint32_t vmHandle, uint32_t paint, uint32_t value)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
paintBlendModeImpl(vm, paint, value);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_paint_feather(uint32_t vmHandle, uint32_t paint, float value)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
paintFeatherImpl(vm, paint, value);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_paint_shader(uint32_t vmHandle, uint32_t paint, uint32_t shader)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
paintShaderImpl(vm, paint, shader);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_canvas_new(uint32_t vmHandle, uint32_t width, uint32_t height)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return canvasNewImpl(vm, width, height);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_canvas_release(uint32_t vmHandle, uint32_t canvas)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
canvasReleaseImpl(vm, canvas);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_canvas_width(uint32_t vmHandle, uint32_t canvas)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return canvasWidthImpl(vm, canvas);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_canvas_height(uint32_t vmHandle, uint32_t canvas)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return canvasHeightImpl(vm, canvas);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_canvas_resize(uint32_t vmHandle, uint32_t canvas, uint32_t width, uint32_t height)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return canvasResizeImpl(vm, canvas, width, height);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_canvas_image(uint32_t vmHandle, uint32_t canvas)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return canvasImageImpl(vm, canvas);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_canvas_begin_frame(uint32_t vmHandle, uint32_t canvas, uint32_t clearColor)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return canvasBeginFrameImpl(vm, canvas, clearColor);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_canvas_end_frame(uint32_t vmHandle, uint32_t canvas)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
canvasEndFrameImpl(vm, canvas);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_features(uint32_t vmHandle, uint32_t* out, uint32_t outCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return gpuFeaturesImpl(vm, out, outCount);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_canvas_new(uint32_t vmHandle, uint32_t width, uint32_t height)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return gpuCanvasNewImpl(vm, width, height);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_canvas_release(uint32_t vmHandle, uint32_t canvas)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuCanvasReleaseImpl(vm, canvas);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_canvas_color_view(uint32_t vmHandle, uint32_t canvas, uint32_t* props, uint32_t propCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return gpuCanvasColorViewImpl(vm, canvas, props, propCount);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_canvas_image(uint32_t vmHandle, uint32_t canvas)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return gpuCanvasImageImpl(vm, canvas);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_canvas_resize(uint32_t vmHandle, uint32_t canvas, uint32_t width, uint32_t height, uint32_t* props, uint32_t propCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return gpuCanvasResizeImpl(vm, canvas, width, height, props, propCount);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_pass_begin(uint32_t vmHandle, const rive_gpu_pass_desc_v1* desc, uint32_t descByteCount, const rive_gpu_pass_color_attachment_v1* colors, uint32_t colorByteCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return gpuPassBeginImpl(vm, desc, descByteCount, colors, colorByteCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_pass_set_pipeline(uint32_t vmHandle, uint32_t pass, uint32_t pipeline)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuPassSetPipelineImpl(vm, pass, pipeline);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_pass_set_vertex_buffer(uint32_t vmHandle, uint32_t pass, uint32_t slot, uint32_t buffer, uint32_t offset)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuPassSetVertexBufferImpl(vm, pass, slot, buffer, offset);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_pass_set_index_buffer(uint32_t vmHandle, uint32_t pass, uint32_t buffer, uint32_t indexFormat, uint32_t offset)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuPassSetIndexBufferImpl(vm, pass, buffer, indexFormat, offset);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_pass_set_bind_group(uint32_t vmHandle, uint32_t pass, uint32_t groupIndex, uint32_t bindGroup, const uint32_t* dynamicOffsets, uint32_t dynamicOffsetByteCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuPassSetBindGroupImpl(vm, pass, groupIndex, bindGroup, dynamicOffsets, dynamicOffsetByteCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_pass_set_viewport(uint32_t vmHandle, uint32_t pass, float x, float y, float width, float height, float minDepth, float maxDepth)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuPassSetViewportImpl(vm, pass, x, y, width, height, minDepth, maxDepth);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_pass_set_scissor(uint32_t vmHandle, uint32_t pass, uint32_t x, uint32_t y, uint32_t width, uint32_t height)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuPassSetScissorImpl(vm, pass, x, y, width, height);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_pass_set_stencil_reference(uint32_t vmHandle, uint32_t pass, uint32_t ref)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuPassSetStencilReferenceImpl(vm, pass, ref);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_pass_set_blend_color(uint32_t vmHandle, uint32_t pass, float r, float g, float b, float a)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuPassSetBlendColorImpl(vm, pass, r, g, b, a);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_pass_draw(uint32_t vmHandle, uint32_t pass, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuPassDrawImpl(vm, pass, vertexCount, instanceCount, firstVertex, firstInstance);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_pass_draw_indexed(uint32_t vmHandle, uint32_t pass, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuPassDrawIndexedImpl(vm, pass, indexCount, instanceCount, firstIndex, baseVertex, firstInstance);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_pass_finish(uint32_t vmHandle, uint32_t pass)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuPassFinishImpl(vm, pass);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_pass_release(uint32_t vmHandle, uint32_t pass)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuPassReleaseImpl(vm, pass);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_image_view(uint32_t vmHandle, uint32_t image, uint32_t width, uint32_t height)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return gpuImageViewImpl(vm, image, width, height);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_buffer_new(uint32_t vmHandle, uint32_t usage, uint32_t sizeInBytes, uint32_t immutable, const uint8_t* data, uint32_t dataCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return gpuBufferNewImpl(vm, usage, sizeInBytes, immutable, data, dataCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_buffer_update(uint32_t vmHandle, uint32_t buffer, uint32_t dstOffset, const uint8_t* data, uint32_t dataCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuBufferUpdateImpl(vm, buffer, dstOffset, data, dataCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_buffer_release(uint32_t vmHandle, uint32_t buffer)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuBufferReleaseImpl(vm, buffer);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_texture_new(uint32_t vmHandle, const rive_gpu_texture_desc_v1* desc, uint32_t descByteCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return gpuTextureNewImpl(vm, desc, descByteCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_texture_upload(uint32_t vmHandle, uint32_t texture, const rive_gpu_texture_upload_v1* region, uint32_t regionByteCount, const uint8_t* data, uint32_t dataCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuTextureUploadImpl(vm, texture, region, regionByteCount, data, dataCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_texture_release(uint32_t vmHandle, uint32_t texture)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuTextureReleaseImpl(vm, texture);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_sampler_new(uint32_t vmHandle, const rive_gpu_sampler_desc_v1* desc, uint32_t descByteCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return gpuSamplerNewImpl(vm, desc, descByteCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_sampler_release(uint32_t vmHandle, uint32_t sampler)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuSamplerReleaseImpl(vm, sampler);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_texture_view_new(uint32_t vmHandle, uint32_t texture, const rive_gpu_texture_view_desc_v1* desc, uint32_t descByteCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return gpuTextureViewNewImpl(vm, texture, desc, descByteCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_texture_view_release(uint32_t vmHandle, uint32_t view)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuTextureViewReleaseImpl(vm, view);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_shader_target(uint32_t vmHandle)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return gpuShaderTargetImpl(vm);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_shader_asset_bytes(uint32_t vmHandle, uint32_t object, const char* name, uint32_t nameLength, uint8_t* out, uint32_t outCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, nameLength);
return gpuShaderAssetBytesImpl(vm, object, nameUtf8.data(), nameUtf8.size(), out, outCount);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_shader_asset_id(uint32_t vmHandle, uint32_t object, const char* name, uint32_t nameLength)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, nameLength);
return gpuShaderAssetIdImpl(vm, object, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_shader_module_new(uint32_t vmHandle, const rive_gpu_shader_module_desc_v1* desc, uint32_t descByteCount, const uint8_t* blob, uint32_t blobCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return gpuShaderModuleNewImpl(vm, desc, descByteCount, blob, blobCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_shader_module_release(uint32_t vmHandle, uint32_t shaderModule)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuShaderModuleReleaseImpl(vm, shaderModule);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_bind_group_layout_new(uint32_t vmHandle, uint32_t groupIndex, const rive_gpu_bind_group_layout_entry_v1* entries, uint32_t entryByteCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return gpuBindGroupLayoutNewImpl(vm, groupIndex, entries, entryByteCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_bind_group_layout_release(uint32_t vmHandle, uint32_t layout)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuBindGroupLayoutReleaseImpl(vm, layout);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_bind_group_layout_from_shader(uint32_t vmHandle, uint32_t shaderModule, uint32_t groupIndex, const uint32_t* dynamicUBOs, uint32_t dynamicUBOCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return gpuBindGroupLayoutFromShaderImpl(vm, shaderModule, groupIndex, dynamicUBOs, dynamicUBOCount);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_bind_group_new(uint32_t vmHandle, 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)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return gpuBindGroupNewImpl(vm, layout, ubos, uboByteCount, textures, textureByteCount, samplers, samplerByteCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_bind_group_release(uint32_t vmHandle, uint32_t bindGroup)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuBindGroupReleaseImpl(vm, bindGroup);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_gpu_pipeline_new(uint32_t vmHandle, const rive_gpu_pipeline_desc_v1* desc, uint32_t descByteCount, const uint8_t* blob, uint32_t blobCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return gpuPipelineNewImpl(vm, desc, descByteCount, blob, blobCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_gpu_pipeline_release(uint32_t vmHandle, uint32_t pipeline)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
gpuPipelineReleaseImpl(vm, pipeline);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_buffer_new(uint32_t vmHandle, uint32_t bufferType, uint32_t flags, uint32_t sizeInBytes)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return bufferNewImpl(vm, bufferType, flags, sizeInBytes);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_buffer_update(uint32_t vmHandle, uint32_t buffer, const uint8_t* bytes, uint32_t byteCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
bufferUpdateImpl(vm, buffer, bytes, byteCount);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_buffer_release(uint32_t vmHandle, uint32_t buffer)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
bufferReleaseImpl(vm, buffer);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_blob_asset_bytes(uint32_t vmHandle, uint32_t object, const char* name, uint32_t nameLength, uint8_t* out, uint32_t outCount)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, nameLength);
return blobAssetBytesImpl(vm, object, nameUtf8.data(), nameUtf8.size(), out, outCount);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_image_from_asset(uint32_t vmHandle, uint32_t object, const char* name, uint32_t length)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
WasmStringArg nameUtf8(vm, name, length);
return imageFromAssetImpl(vm, object, nameUtf8.data(), nameUtf8.size());
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_image_width(uint32_t vmHandle, uint32_t image)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return imageWidthImpl(vm, image);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_image_height(uint32_t vmHandle, uint32_t image)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return imageHeightImpl(vm, image);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_image_release(uint32_t vmHandle, uint32_t image)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
imageReleaseImpl(vm, image);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_image_decode(uint32_t vmHandle, const uint8_t* bytes, uint32_t byteCount, uint32_t token)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return imageDecodeImpl(vm, bytes, byteCount, token);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_image_decode_cancel(uint32_t vmHandle, uint32_t token)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
imageDecodeCancelImpl(vm, token);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_shader_linear(uint32_t vmHandle, float sx, float sy, float ex, float ey, uint32_t colors, uint32_t stops, uint32_t count)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return shaderLinearImpl(vm, sx, sy, ex, ey, colors, stops, count);
}
EMSCRIPTEN_KEEPALIVE
uint32_t rive_web_shader_radial(uint32_t vmHandle, float cx, float cy, float radius, uint32_t colors, uint32_t stops, uint32_t count)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
return shaderRadialImpl(vm, cx, cy, radius, colors, stops, count);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_shader_release(uint32_t vmHandle, uint32_t shader)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
shaderReleaseImpl(vm, shader);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_renderer_save(uint32_t vmHandle, uint32_t renderer)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
rendererSaveImpl(vm, renderer);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_renderer_restore(uint32_t vmHandle, uint32_t renderer)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
rendererRestoreImpl(vm, renderer);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_renderer_transform(uint32_t vmHandle, uint32_t renderer, float xx, float xy, float yx, float yy, float tx, float ty)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
rendererTransformImpl(vm, renderer, xx, xy, yx, yy, tx, ty);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_renderer_draw_path(uint32_t vmHandle, uint32_t renderer, uint32_t path, uint32_t paint)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
rendererDrawPathImpl(vm, renderer, path, paint);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_renderer_clip_path(uint32_t vmHandle, uint32_t renderer, uint32_t path)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
rendererClipPathImpl(vm, renderer, path);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_renderer_modulate_color(uint32_t vmHandle, uint32_t renderer, uint32_t color, uint32_t replace)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
rendererModulateColorImpl(vm, renderer, color, replace);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_renderer_draw_image(uint32_t vmHandle, uint32_t renderer, uint32_t image, uint32_t sampler, uint32_t blend, float opacity)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
rendererDrawImageImpl(vm, renderer, image, sampler, blend, opacity);
}
EMSCRIPTEN_KEEPALIVE
void rive_web_renderer_draw_image_mesh(uint32_t vmHandle, uint32_t renderer, uint32_t image, uint32_t sampler, uint32_t vertexBuffer, uint32_t uvBuffer, uint32_t indexBuffer, uint32_t blend, float opacity)
{
auto vm = (WasmScriptingVM*)(uintptr_t)vmHandle;
rendererDrawImageMeshImpl(vm, renderer, image, sampler, vertexBuffer, uvBuffer, indexBuffer, blend, opacity);
}
} // extern "C"
#endif // __EMSCRIPTEN__