refactor
This commit is contained in:
@@ -42,6 +42,7 @@ namespace thermion
|
||||
void setRenderable(filament::SwapChain *swapChain, filament::View **view, uint8_t numViews);
|
||||
|
||||
void addAnimationManager(AnimationManager* animationManager);
|
||||
|
||||
void removeAnimationManager(AnimationManager* animationManager);
|
||||
|
||||
|
||||
|
||||
@@ -26,6 +26,8 @@ EMSCRIPTEN_KEEPALIVE TEngine *Engine_create(
|
||||
uint8_t stereoscopicEyeCount,
|
||||
bool disableHandleUseAfterFreeCheck
|
||||
);
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE TEngine *Engine_destroy(TEngine *tEngine);
|
||||
EMSCRIPTEN_KEEPALIVE TRenderer *Engine_createRenderer(TEngine *tEngine);
|
||||
EMSCRIPTEN_KEEPALIVE TSwapChain *Engine_createSwapChain(TEngine *tEngine, void *window, uint64_t flags);
|
||||
EMSCRIPTEN_KEEPALIVE TSwapChain *Engine_createHeadlessSwapChain(TEngine *tEngine, uint32_t width, uint32_t height, uint64_t flags);
|
||||
|
||||
@@ -9,6 +9,7 @@ extern "C"
|
||||
#endif
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE TRenderTicker *RenderTicker_create(TRenderer *tRenderer);
|
||||
EMSCRIPTEN_KEEPALIVE void RenderTicker_destroy(TRenderTicker *tRenderTicker);
|
||||
EMSCRIPTEN_KEEPALIVE void RenderTicker_addAnimationManager(TRenderTicker *tRenderTicker, TAnimationManager *tAnimationManager);
|
||||
EMSCRIPTEN_KEEPALIVE void RenderTicker_removeAnimationManager(TRenderTicker *tRenderTicker, TAnimationManager *tAnimationManager);
|
||||
|
||||
|
||||
@@ -33,6 +33,9 @@ namespace thermion
|
||||
Scene *scene);
|
||||
~AnimationManager();
|
||||
|
||||
/// @brief
|
||||
///
|
||||
/// @param frameTimeInNanos
|
||||
void update(uint64_t frameTimeInNanos);
|
||||
|
||||
/// @brief
|
||||
|
||||
@@ -73,7 +73,7 @@ namespace thermion
|
||||
std::lock_guard lock(mMutex);
|
||||
|
||||
for (auto animationManager : mAnimationManagers) {
|
||||
animationManager->update(frameTimeInNanos * 1e-9);
|
||||
animationManager->update(frameTimeInNanos);
|
||||
}
|
||||
|
||||
for (const auto& [swapChain, views] : mRenderable)
|
||||
|
||||
@@ -58,6 +58,11 @@ namespace thermion
|
||||
return reinterpret_cast<TEngine *>(engine);
|
||||
}
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE void Engine_destroy(TEngine *tEngine) {
|
||||
auto *engine = reinterpret_cast<Engine *>(tEngine);
|
||||
Engine::destroy(engine);
|
||||
}
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE TRenderer *Engine_createRenderer(TEngine *tEngine)
|
||||
{
|
||||
auto *engine = reinterpret_cast<Engine *>(tEngine);
|
||||
|
||||
@@ -24,6 +24,11 @@ EMSCRIPTEN_KEEPALIVE TRenderTicker *RenderTicker_create(TRenderer *tRenderer) {
|
||||
return reinterpret_cast<TRenderTicker *>(renderTicker);
|
||||
}
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE void RenderTicker_destroy(TRenderTicker *tRenderTicker,) {
|
||||
auto *renderTicker = reinterpret_cast<RenderTicker *>(tRenderTicker);
|
||||
delete renderTicker;
|
||||
}
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE void RenderTicker_addAnimationManager(TRenderTicker *tRenderTicker, TAnimationManager *tAnimationManager) {
|
||||
auto *renderTicker = reinterpret_cast<RenderTicker *>(tRenderTicker);
|
||||
auto *animationManager = reinterpret_cast<thermion::AnimationManager *>(tAnimationManager);
|
||||
|
||||
@@ -43,7 +43,7 @@ void RenderLoop::iter()
|
||||
std::unique_lock<std::mutex> lock(_mutex);
|
||||
if (_requestFrameRenderCallback)
|
||||
{
|
||||
mRenderTicker->render();
|
||||
mRenderTicker->render(0);
|
||||
lock.unlock();
|
||||
this->_requestFrameRenderCallback();
|
||||
this->_requestFrameRenderCallback = nullptr;
|
||||
|
||||
@@ -474,7 +474,7 @@ namespace thermion
|
||||
return boneEntities;
|
||||
}
|
||||
|
||||
void AnimationManager::update()
|
||||
void AnimationManager::update(uint64_t frameTimeInNanos)
|
||||
{
|
||||
std::lock_guard lock(_mutex);
|
||||
_animationComponentManager->update();
|
||||
|
||||
Reference in New Issue
Block a user