在 Java 中检测 Graphics2D 对象的变化

Detect changes in Graphics2D object in Java

我正在寻找一种有效的方法来检测渲染的离散阶段之间对 Graphics2D 对象的任何更改(以便在发现第一个 "no change" 后,我可以通过中止更多多余的阶段来进行优化)。

是否有比较内存的方法,或者可能是校验和,或任何其他比较两个状态以识别(或排除)更改的方法?

可能取决于您生成图形上下文的上下文,但我的效率会非常低。

相反,您可以维护一个 "current state" BufferedImage,当您更新模型时,让它确定是否发生了任何更改。如果模型被改变了,创建一个临时的BufferedImage,re-render这个新状态,然后将它分配给"current state" BufferedImage.

每次要渲染到屏幕时,只需使用 "current state" BufferedImage