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

Michael Paus mpaus at openjdk.java.net
Thu Jan 16 11:56:20 UTC 2020


On Thu, 16 Jan 2020 10:55:38 GMT, Ambarish Rapte <arapte at openjdk.org> wrote:

>> modules/javafx.graphics/src/main/java/javafx/scene/Scene.java line 1306:
>> 
>>> 1305:             int verticalTileNb = (int) Math.ceil(height / (double) maxTextureSize);
>>> 1306:             int horizontalTileNb = (int) Math.ceil(width / (double) maxTextureSize);
>>> 1307:             for (int i = 0; i < horizontalTileNb; i++) {
>> 
>> A suggestion for this arithmetic.
>> int verticalTileNb = height / maxTextureSize + 1;
>> int horizontalTileNb = width / maxTextureSize + 1;
>> This will avoid the type casting and floating point operations. However I leave it to you to change or not.
> 
> Assuming `Nb` in `verticalTileNb` stands for number, I would recommend to change the names as `numVerticalTiles` and `numHorizontalTiles`

I think the proposed code changes are wrong in case that `height / maxTextureSize` is an exact integer. (Same for width). I normally add the 1 only if `height  % maxTextureSize != 0`

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

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


More information about the openjfx-dev mailing list