add Texture_generateMipMapsRenderThread, AnimationManager_resetToRestPoseRenderThread

This commit is contained in:
Nick Fisher
2025-06-02 11:51:19 +08:00
parent 39a302c23e
commit 7b80723560
2 changed files with 22 additions and 2 deletions

View File

@@ -58,6 +58,7 @@ namespace thermion
TTextureFormat format,
void (*onComplete)(TTexture*)
);
void Texture_generateMipMapsRenderThread(TTexture *tTexture, TEngine *tEngine, uint32_t requestId, VoidCallback onComplete);
void Engine_destroyTextureRenderThread(TEngine *engine, TTexture* tTexture, uint32_t requestId, VoidCallback onComplete);
void Engine_createFenceRenderThread(TEngine *tEngine, void (*onComplete)(TFence*));
@@ -299,7 +300,7 @@ namespace thermion
const float *const transform,
void (*callback)(bool));
void AnimationManager_resetToRestPoseRenderThread(TAnimationManager *tAnimationManager, EntityId entityId, uint32_t requestId, VoidCallback onComplete);
void AnimationManager_resetToRestPoseRenderThread(TAnimationManager *tAnimationManager, TSceneAsset *tSceneAsset, uint32_t requestId, VoidCallback onComplete);
void GltfAssetLoader_createRenderThread(TEngine *tEngine, TMaterialProvider *tMaterialProvider, TNameComponentManager *tNameComponentManager, void (*callback)(TGltfAssetLoader *));
void GltfResourceLoader_createRenderThread(TEngine *tEngine, void (*callback)(TGltfResourceLoader *));

View File

@@ -703,6 +703,16 @@ extern "C"
auto fut = _renderThread->add_task(lambda);
}
EMSCRIPTEN_KEEPALIVE void AnimationManager_resetToRestPoseRenderThread(TAnimationManager *tAnimationManager, TSceneAsset *tSceneAsset, uint32_t requestId, VoidCallback onComplete) {
std::packaged_task<void()> lambda(
[=]() mutable
{
AnimationManager_resetToRestPose(tAnimationManager, tSceneAsset);
PROXY(onComplete(requestId));
});
auto fut = _renderThread->add_task(lambda);
}
EMSCRIPTEN_KEEPALIVE void AnimationManager_createRenderThread(TEngine *tEngine, TScene *tScene, void (*onComplete)(TAnimationManager *))
{
std::packaged_task<void()> lambda(
@@ -841,7 +851,16 @@ extern "C"
auto fut = _renderThread->add_task(lambda);
}
// Texture methods
void Texture_generateMipMapsRenderThread(TTexture *tTexture, TEngine *tEngine, uint32_t requestId, VoidCallback onComplete) {
std::packaged_task<void()> lambda(
[=]() mutable
{
Texture_generateMipMaps(tTexture, tEngine);
PROXY(onComplete(requestId));
});
auto fut = _renderThread->add_task(lambda);
}
EMSCRIPTEN_KEEPALIVE void Texture_loadImageRenderThread(TEngine *tEngine, TTexture *tTexture, TLinearImage *tImage,
TPixelDataFormat bufferFormat, TPixelDataType pixelDataType,
int level,