This commit is contained in:
2026-05-23 20:49:32 +08:00
parent 12ea7273ef
commit f78de517ec
5 changed files with 245 additions and 310 deletions
+8
View File
@@ -95,6 +95,8 @@ public:
void setEntities(const QVector<core::Project::Entity>& entities,
const QVector<double>& opacities01,
const QString& projectDirAbs);
/// 播放/时间轴轻量刷帧时置 true,避免 setEntities 每帧 emit selectedEntityChanged 拖垮主线程
void setSuppressSelectionSignals(bool on) { m_suppressSelectionSignals = on; }
void setTools(const QVector<core::Project::Tool>& tools, const QVector<double>& opacities01);
void setCameraOverlays(const QVector<core::Project::Camera>& cameras,
const QString& selectedId,
@@ -107,6 +109,8 @@ public:
int currentFrame() const { return m_currentFrame; }
bool isDraggingEntity() const { return m_draggingEntity; }
/// 正在拖动摄像机中心手柄(Move 工具);此时 overlays 由画布更新,勿用工作区求值覆盖
bool isDraggingCamera() const { return m_draggingCamera; }
void selectEntityById(const QString& id);
void clearEntitySelection();
@@ -252,6 +256,10 @@ private:
private:
QString m_projectDirAbs;
/// 实体抠图贴图缓存(键:磁盘绝对路径或 runtime/png 内容摘要),避免播放时每帧 QImage(path) 读盘
QHash<QString, QImage> m_entityRasterImageCache;
QString m_entityRasterCacheProjectDir;
bool m_suppressSelectionSignals = false;
QHash<QString, QImage> m_blackholeOverlayImageCache;
QString m_bgAbsPath;
bool m_backgroundVisible = true;