On Thu, 4 Jul 2024 08:06:39 GMT, eduardsdv <d...@openjdk.org> wrote: >> This is an alternative solution to the PR: >> https://github.com/openjdk/jfx/pull/1310. >> >> This solution is based on the invariant that if a node is marked as dirty, >> all ancestors must also be marked as dirty and that if an ancestor is marked >> as clean, all descendants must also be marked as clean. >> Therefore I removed the ``clearDirtyTree()`` method and put its content to >> the ``clearDirty()`` method. >> >> Furthermore, since dirty flag is only used when rendering by >> ``ViewPainter``, it should also be deleted by ``ViewPainter`` only. >> This guarantees: >> 1. that all dirty flags are removed after rendering, and >> 2. that no dirty flags are removed when a node is rendered, e.g. by creating >> a snapshot or printing. >> Therefore I removed all calls of the methods ``clearDirty()`` and >> ``clearDirtyTree()`` from all other classes except the ``ViewerPainter``. >> >> The new version of the ``clearDirty()`` method together with calling it from >> the ``ViewerPainter`` needs to visit far fewer nodes compared to the version >> prior this PR. >> >> The supplied test checks that the nodes are updated even if they are >> partially covered, which led to the error in the version before the PR. The >> test can be started with: >> ``gradlew -PFULL_TEST=true -PUSE_ROBOT=true :systemTests:test --tests >> NGNodeDirtyFlagTest`` > > eduardsdv has updated the pull request incrementally with one additional > commit since the last revision: > > JDK-8322619: Remove waiting for the QuantumRenderer
@lukostyra Can you be the second reviewer on this? ------------- PR Comment: https://git.openjdk.org/jfx/pull/1451#issuecomment-2208901691