问题标签 [dirtyrectangle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
125 浏览

algorithm - 为给定的一组重叠矩形寻找多边形顶点的算法

寻找最少矩形以覆盖一组矩形而不重叠的算法

很好的解释,加雷斯。我想弄清楚的是如何实现相反的解决方案,即如何从一组矩形开始并引导到多边形。

我的解决方案适用于所有情况,除非两个或多个矩形的部分或整个边缘相互重叠。

如何摆脱构成重叠边缘的点?

0 投票
1 回答
417 浏览

android - Android 部分失效会在硬件加速时绘制整个视图

我写了一个只显示一个自定义视图的活动。

视图很简单,绘制随机颜色并使较小的区域无效,并绘制随机颜色并使更小的区域无效,等等......

预期的结果应该是这样。它通过使用软件渲染效果很好,getClipBounds() 返回我刚刚传递给无效的区域。但是当启用硬件加速时,整个视图总是用新的颜色重绘,并且 getClipBounds() 返回整个视图的区域。

我知道有一些这样的帖子这个。答案说 getClipBounds() 通过硬件加速返回整个视图的区域,但只有与脏区域相交的区域才会被重绘。

有什么不对或我的误解吗?

0 投票
1 回答
1092 浏览

python - Pygame 中的断断续续动画

我正在尝试创建一个动画,显示一个从屏幕边缘反弹的框。而且,我正在尝试使用基于时间的动画和脏矩形来实现这一点。

我能够为盒子设置动画;但是,动画非常不稳定。这里有两个视频可以说明我在说什么:

30 FPS:https ://www.youtube.com/watch?v=0de8ENxn7GQ

60 FPS:https ://www.youtube.com/watch?v=b5sXgeOlgHU

这是我的代码:

我能做些什么来减少波动吗?另外,我是 Pygame 的新手,所以如果您发现我做错/低效的任何事情,请告诉我。

我在具有 12 GB RAM 的 64 位 Windows 7、i5-6300u 机器上运行动画。我正在使用 Python 2.7.12 和 Pygame 1.9.2。

提前致谢!

0 投票
0 回答
461 浏览

android - 使用硬件加速使脏矩形无效

在这门课上,我为井字游戏画了简单的基础。它由截断的线和单元格中心的“X”组成。因此,当用户触摸单元格时,textColor应该更改它。

invalidate(rect)用来重绘混凝土单元格,但在这种情况下,每个单元格都会更改它的textColor.

Romain Guy的话来说,canvaswith the whole viewRect是为绘图而来的。将在绘图命令和您的dirtyDisplayList之间找到拦截,并且只会绘制那些命令。但似乎,它不是这样工作的。 使用硬件加速的自定义 Android 视图中的部分失效 Rect

而且我还发现了4.4 - 5.0 Android 之间的奇怪代码更改。所以你可以看到,它mCurrentDirty从代码中完全消失了。 Android View.invalidate(Rect) 两个设备之间的不同行为

PS for SA这个逻辑工作正常,只有脏Rect的被改变了。

0 投票
1 回答
196 浏览

optimization - 缩小脏矩形

尝试优化落沙模拟,我正在实施 noita 开发人员在他们的GDC 演讲中谈到的优化。在 10:45 左右,他们谈论了如何使用脏矩形。我已经开始尝试实施类似的系统。

目前,我能够创建一个覆盖需要更新的粒子的脏矩形。每次将有效粒子(粒子不是空气或像墙一样的固体)设置在块内时,我都会这样做,我调用一个函数来更新脏矩形,将放置的粒子位置作为参数。从那里,我可以很容易地从这个位置计算矩形的新最小值/最大值。

这是该工作的 GIF。 随着粒子更新,脏矩形扩展

这是更新矩形的代码:

从 gif 中可以看出,问题是我目前无法缩小脏矩形。我可以做一些事情,例如检测何时在脏矩形的边界边缘上用空气/固体粒子擦除/替换粒子,但我不确定从那里做什么。