消除开始拖拽的首帧尖峰:用静态场景缓存初始化宽基底 + 启用预览功能时预建基底
平移首帧不再从零重画 2×视界:平移只是整体横移,上一帧场景缓存内容依然正确,直接贴进宽基底中心再滚动到当前视界(仅当派生预览曲线参数未变时适用)。启用弱波增强/均值滤波/中心轴时预建基底,使首次拖动其参数滑块无需重建。实测 VERY_BIG_DATA 全信号、视界 [40.1756,40.1885]s、5 网格:中键平移拖动最大 8.5ms、弱波增强滑块最大 10.8ms(原分别 35/37.6ms);全部鼠标交互全程 >=60fps、无尖峰;静止帧与 HEAD 逐像素 0 差异。
This commit is contained in:
1 parent
e988da7963
commit
8b1de5d900
3 files changed
+101
-1
No files matched your search
@@ -2232,6 +2232,16 @@ namespace jdi
|
||||
bool RollWideBuffer();
|
||||
/** @brief 渲染宽缓冲区中因滚动而新暴露的一条细条(宽 |shiftPixels|)。 */
|
||||
void RenderWideStrip(int shiftPixels);
|
||||
/**
|
||||
* @brief 用「上一帧的静态场景缓存」初始化宽缓冲区(平移首帧用,避免从零重画)。
|
||||
*
|
||||
* 平移时画面只是整体横向移动,场景缓存里的内容(含派生曲线/图例)**依然正确**;
|
||||
* 因此把场景缓存的绘图区直接贴进宽缓冲中心即可,随后滚动到当前视界。
|
||||
* 仅当"视界相对场景缓存发生了平移"(跨度一致)时可用。
|
||||
*
|
||||
* @return 初始化成功返回 true。
|
||||
*/
|
||||
bool InitWideBufferFromScene();
|
||||
/** @brief 宽缓冲区内容是否仍与当前视图/内容一致。 */
|
||||
bool WideBufferMatches() const;
|
||||
/** @brief 使宽缓冲区失效。 */
|
||||
|
||||
Reference in new issue
Block a user