summaryrefslogtreecommitdiffstats
path: root/src/imports/rasterrenderer
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/rasterrenderer')
-rw-r--r--src/imports/rasterrenderer/batchrenderer.cpp20
-rw-r--r--src/imports/rasterrenderer/batchrenderer.h3
2 files changed, 12 insertions, 11 deletions
diff --git a/src/imports/rasterrenderer/batchrenderer.cpp b/src/imports/rasterrenderer/batchrenderer.cpp
index 6b64e7a..eb0cc44 100644
--- a/src/imports/rasterrenderer/batchrenderer.cpp
+++ b/src/imports/rasterrenderer/batchrenderer.cpp
@@ -52,6 +52,17 @@ Q_LOGGING_CATEGORY(lcLottieQtBodymovinRenderThread, "qt.lottieqt.bodymovin.rende
BatchRenderer *BatchRenderer::m_rendererInstance = nullptr;
+BatchRenderer::BatchRenderer()
+ : QThread()
+{
+ const QByteArray cacheStr = qgetenv("QLOTTIE_RENDER_CACHE_SIZE");
+ int cacheSize = cacheStr.toInt();
+ if (cacheSize > 0) {
+ qCDebug(lcLottieQtBodymovinRenderThread) << "Setting frame cache size to" << cacheSize;
+ m_cacheSize = cacheSize;
+ }
+}
+
BatchRenderer::~BatchRenderer()
{
qDeleteAll(m_animData);
@@ -149,15 +160,6 @@ BMBase *BatchRenderer::getFrame(LottieAnimation *animator, int frameNumber)
return nullptr;
}
-void BatchRenderer::setCacheSize(int size)
-{
- if (size < 1 || isRunning())
- return;
-
- qCDebug(lcLottieQtBodymovinRenderThread) << "Setting frame cache size to" << size;
- m_cacheSize = size;
-}
-
void BatchRenderer::prerender(Entry *animEntry)
{
while (animEntry->frameCache.count() < m_cacheSize) {
diff --git a/src/imports/rasterrenderer/batchrenderer.h b/src/imports/rasterrenderer/batchrenderer.h
index 4ede260..7e5830e 100644
--- a/src/imports/rasterrenderer/batchrenderer.h
+++ b/src/imports/rasterrenderer/batchrenderer.h
@@ -77,7 +77,6 @@ public slots:
bool gotoFrame(LottieAnimation *animator, int frame);
void frameRendered(LottieAnimation *animator, int frameNumber);
- void setCacheSize(int size);
protected:
void run() override;
@@ -87,7 +86,7 @@ protected:
void prerender(Entry *animEntry);
private:
- BatchRenderer() = default;
+ BatchRenderer();
void pruneFrameCache(Entry* e);