You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
cocos_lib/cocos/editor-support/spine-wasm/wasmSpineExtension.cpp

72 lines
1.8 KiB

#include "wasmSpineExtension.h"
#include "util-function.h"
using namespace spine;
// extern "C" {
// extern uint32_t jsReadFile(char* fileName, uint32_t length);
// }
WasmSpineExtension::WasmSpineExtension() : DefaultSpineExtension() {
}
WasmSpineExtension::~WasmSpineExtension() {
}
char *WasmSpineExtension::_readFile(const String &path, int *length) {
// size_t pathSize = path.length();
// uint8_t* uint8Ptr = StoreMemory::getStoreMemory();
// char* shareBuffer = (char*)uint8Ptr;
// memcpy(shareBuffer, path.buffer(), pathSize);
// uint32_t resultSize = jsReadFile(shareBuffer, pathSize);
// *length = (int)resultSize;
// uint8_t *data = new uint8_t[resultSize];
// memcpy(data, shareBuffer, resultSize);
// return (char*)data;
//LogUtil::PrintToJs("Error WasmSpineExtension::_readFile");
return nullptr;
}
void *WasmSpineExtension::_alloc(size_t size, const char *file, int line) {
SP_UNUSED(file);
SP_UNUSED(line);
if (size == 0)
return 0;
void *ptr = new uint8_t[size];
return (void *)ptr;
}
void *WasmSpineExtension::_calloc(size_t size, const char *file, int line) {
SP_UNUSED(file);
SP_UNUSED(line);
if (size == 0)
return 0;
uint8_t *ptr = new uint8_t[size];
if (ptr) memset(ptr, 0, size);
return (void *)ptr;
}
void *WasmSpineExtension::_realloc(void *ptr, size_t size, const char *file, int line) {
SP_UNUSED(file);
SP_UNUSED(line);
if (size == 0)
return 0;
uint8_t *mem = new uint8_t[size];
memcpy(mem, ptr, size);
delete[](char *) ptr;
ptr = mem;
return mem;
}
void WasmSpineExtension::_free(void *mem, const char *file, int line) {
SP_UNUSED(file);
SP_UNUSED(line);
delete[](char *) mem;
}
SpineExtension *spine::getDefaultExtension() {
return new WasmSpineExtension();
}