> 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 :systemTests:test --tests 
> NGNodeDirtyFlagTest``

eduardsdv has updated the pull request with a new target base due to a merge or 
a rebase. The incremental webrev excludes the unrelated changes brought in by 
the merge/rebase. The pull request contains five additional commits since the 
last revision:

 - Merge remote-tracking branch 'refs/remotes/origin/master' into 
bugfix/JDK-8322619-render-dirty-flag
 - JDK-8322619: Fix waiting for the stage
 - JDK-8322619: Improve output message in test
 - JDK-8322619: Avoid using of Thread.sleep(..)
 - JDK-8322619: Combine clearDirtyTree() and clearDirty() methods.

-------------

Changes:
  - all: https://git.openjdk.org/jfx/pull/1451/files
  - new: https://git.openjdk.org/jfx/pull/1451/files/a2383fd9..e3bd58f3

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jfx&pr=1451&range=02
 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=1451&range=01-02

  Stats: 65198 lines in 336 files changed: 37377 ins; 14876 del; 12945 mod
  Patch: https://git.openjdk.org/jfx/pull/1451.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/1451/head:pull/1451

PR: https://git.openjdk.org/jfx/pull/1451

Reply via email to