On Wed, 1 Jul 2020 16:20:53 GMT, Frederic Thevenet <github.com+7450507+ftheve...@openjdk.org> wrote:
>> Issue JDK-8088198, where an exception would be thrown when trying to capture >> a snapshot whose final dimensions would be >> larger than the running platform's maximum supported texture size, was >> addressed in openjfx14. The fix, based around >> the idea of capturing as many tiles of the maximum possible size and >> re-compositing the final snapshot out of these, is >> currently only attempted after the original, non-tiled, strategy has already >> failed. This was decided to avoid any risk >> of regressions, either in terms of performances and correctness, while still >> offering some relief to the original >> issue. This follow-on issue aims to propose a fix to the original issue, >> that is able to correctly decide on the best >> snapshot strategy (tiled or not) to adopt before applying it and ensure best >> performances possible when tiling is >> necessary while still introducing no regressions compared to the original >> solution. > > Frederic Thevenet has updated the pull request incrementally with two > additional commits since the last revision: > > - Mark variables as final > - Using for loops instead of while Looks good. Sanity tested on all three platforms. modules/javafx.graphics/src/main/java/com/sun/javafx/tk/quantum/QuantumToolkit.java line 1589: > 1588: int mTileWidth = computeTileSize(w, > maxTextureSize); > 1589: int mTileHeight = computeTileSize(h, > maxTextureSize); > 1590: IntBuffer buffer = > IntBuffer.allocate(mTileWidth * mTileHeight); I'll test it soon. Since these variables no longer change, maybe you could make them `final`? ------------- Marked as reviewed by kcr (Lead). PR: https://git.openjdk.java.net/jfx/pull/112