This is 2d related question (cc 2d-dev).
*From: *Alan Snyder <javali...@cbfiddle.com <mailto:javali...@cbfiddle.com>>
*Subject: **<AWT Dev> creating images using native code*
*Date: *August 11, 2015 at 5:36:55 PM PDT
*To: *awt-...@openjdk.java.net <mailto:awt-...@openjdk.java.net>

I am currently creating images with data provided by native code by capturing the data in an int array then using that array to construct a DataBufferInt which is used to create a WritableRaster which is used to create a BufferedImage.

That seems to work fine, except that looking at the code it appears that the buffer is considered untrackable, which sounds like a bad thing. Does that in fact prevent caching the image in a GPU, for example?
Yes you are right, because in this case we cannot be sure when the data inside the raster is changed, this can occur for example when we copy this data from/to gpu.


If so, is there a good way to create a cacheable image?
The public way is to draw the image once again to another one which will be cached instead.


The solutions I have found so far all wind up processing the pixels one at a time at some point, as far as I can tell, which should not be necessary.

I’m wondering why there is no way to simply declare that the buffer will not change in the future.

 Alan




--
Best regards, Sergey.

Reply via email to