Why would you use JNI to paint on AWT's Canvas?

I'm pretty new to the JNI, and I stumbled across this while looking into the JNI:

Not only can native code interface with Java, it can also draw on a Java Canvas, which is possible with the Java AWT Native Interface

Is there a specific reason why this functionality was made specific/is available? Does it improve processing time on Windows system? Please elaborate why and when one would use such a feature


Native performance rendering in Java... games would be the first thing to come to mind but really drawing anything that would be computationally intensive or that requires a high frame-rate would benefit.

Official Java Explanation:

The ability to draw directly into a Java Canvas from a native code library is extremely useful for developers planning to migrate a legacy software system to Java, especially one that includes a high-performance rendering engine. It makes it much easier to migrate in stages, leaving performance-sensitive rendering code alone, while other less-sensitive portions of code are converted to Java. The result can be a modern Java-centric application, providing the benefit of portability and development efficiency, but one that does not sacrifice an investment in performance of a key piece of native code.

The most common use of AWT's JNI painting is 3D drawing with OpenGL or DirectX D3D. Some java 3D APIs, like Java3D and initial releases of JOGL, used Canvas.java as drawing surface. It can also be used for 2D native rendering, but Java drawings features are just enough for this task.

Need Your Help

JavaScript data grid for millions of rows AND columns

javascript jquery gridview datagrid grid

I am looking for a component where I can present not only millions of rows but also a lot of columns (up to 100000). I am not looking for answers in the form of "Why would you that?". I know slickg...

Deserializing from JSON back to joda DateTime in Play 2.0

json playframework deserialization playframework-2.0 jodatime

I can't figure out the magic words to allow posting JSON for a DateTime field in my app. When queried, DateTimes are returned as microseconds since the epoch. When I try to post in that format thou...