[Rev 03] RFR: 8088198: Exception thrown from snapshot if dimensions are larger than max texture size

Ambarish Rapte arapte at openjdk.java.net
Mon Jan 20 05:07:11 UTC 2020


On Mon, 20 Jan 2020 05:07:11 GMT, Frederic Thevenet <github.com+7450507+fthevenet at 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 2 additional commits.

Looks good to me.
Below is just an observation about time taken by the API,
Platform: `Windows10`,  `maxTextureSize`: 4096
For a snapshot of (4096 * n, 4096 * n): each call to `doSnapshotTile()` takes ~100 ms, and each call to `setPixels()` takes ~30 ms.

Please wait for one more approval before integrating.

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

Marked as reviewed by arapte (Reviewer).

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


More information about the openjfx-dev mailing list