diff --git a/toonz/sources/toonzlib/stagevisitor.cpp b/toonz/sources/toonzlib/stagevisitor.cpp index 8c7e4ce..bc2909e 100644 --- a/toonz/sources/toonzlib/stagevisitor.cpp +++ b/toonz/sources/toonzlib/stagevisitor.cpp @@ -56,6 +56,8 @@ #include #include #include +#include +#include #include "toonz/stagevisitor.h" @@ -743,8 +745,13 @@ void RasterPainter::onImage(const Stage::Player &player) { if (m_singleColumnEnabled && !player.m_isCurrentColumn) return; // Attempt Plastic-deformed drawing - if (TStageObject *obj = - ::plasticDeformedObj(player, m_vs.m_plasticVisualSettings)) { + // For now generating icons of plastic-deformed image causes crash as + // QOffscreenSurface is created outside the gui thread. + // As a quick workaround, ignore the deformation if this is called from + // non-gui thread (i.e. icon generator thread) + TStageObject *obj = + ::plasticDeformedObj(player, m_vs.m_plasticVisualSettings); + if (obj && QThread::currentThread() == qGuiApp->thread()) { flushRasterImages(); ::onPlasticDeformedImage(obj, player, m_vs, m_viewAff); } else {