On Thu, 30 Jan 2020 08:15:48 GMT, Frederic Thevenet 
<github.com+7450507+ftheve...@openjdk.org> wrote:

>> This PR aims to address the following issue: JDK-8088198 Exception thrown 
>> from snapshot if dimensions are larger than max texture size
>> 
>> In order to do that, it simply captures snapshots in multiple tiles of 
>> maxTextureSize^2 dimensions (or less, as needed), and then recomposes all 
>> the tiles into a a single image.
>> Other than that, the logic used to do the actual snapshot is unchanged.
>> 
>> Tests using the existing SnapshotCommon class have been added in a new file 
>> named Snapshot3Test under SystemTest/test/javafx/scene.
>> These tests pass with the proposed fix, and fail without, throwing " 
>> java.lang.IllegalArgumentException: Unrecognized image loader: null"
> 
> The pull request has been updated with 1 additional commit.

With my basic testing, the change looks good, scaled up and scaled down 
snapshots seem correct visually.

After this change the tiled snapshot will be limited by dimensions of the 
`WritableImage`.
We can not create a `WritableImage` of dimension `(8192 * 3, 8192 * 3)` or 
greater.
`new WritableImage(8192 * 3, 8192 * 3)`  causes an exception.
java.lang.IllegalArgumentException: capacity < 0: (-1879048192 < 0)
        at java.base/java.nio.Buffer.createCapacityException(Buffer.java:257)
This is an existing behavior of `WritableImage`.
May be we should consider to wrap and re-throw the exception and update the API 
JavaDoc.
Anyway not a stopper for this PR.
Approving.

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

Marked as reviewed by arapte (Reviewer).

PR: https://git.openjdk.java.net/jfx/pull/68

Reply via email to