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