On Sun, 16 Nov 2025 23:25:35 GMT, John Hendrikx <[email protected]> wrote:

> I think the `invalidateWidthHeight` and `NodeHelper.geomChanged` lines need 
> to be removed as part of this PR.

This explains why my Canvas-based table cell implementation resulted in a 
continuous layout.

This looks like a bug to me, and I think we should fix it separately.

> modules/javafx.graphics/src/main/java/com/sun/javafx/tk/quantum/QuantumToolkit.java
>  line 1510:
> 
>> 1508:     public PlatformImage createPlatformImage(int w, int h) {
>> 1509:         IntBuffer buf = IntBuffer.allocate(w * h);
>> 1510:         return com.sun.prism.Image.fromIntArgbPreData(buf, w, h);
> 
> This seems to be no problem to change (an image heavy application still runs 
> absolutely fine), but it is kind of a global change.  If there are issues 
> with this, we could make a specific method for writable images to use so we 
> always get an `int[]` buffer that the software renderer expects.
> 
> As it is now, the renderer is writing directly into the underlying image 
> storage, without any copies being made (which is nice and efficient).

I am curious why the byte buffer was chosen initially.
Will `IntBuffer` be better on every platform?

Also, `w * h` might be negative if the product is greater than ~2B, though it 
will result in an `IllegalArgumentException` with a cryptic "capacity expected 
to be negative" message.

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

PR Comment: https://git.openjdk.org/jfx/pull/1969#issuecomment-3542760586
PR Review Comment: https://git.openjdk.org/jfx/pull/1969#discussion_r2511862262

Reply via email to