I know there has been a couple of questions regarding opengl support with java2d.
I would like to explain my current situation, and need some help on the path for the solution.
Our client company runs 3000 OS/2 Workstations in branches. These workstations are used to display signiture's and id documents. Because of sensitive information, and possibility of using the images for printout's we need to prevent the user's
from being able to print, or put the images on the clip board.
This was easy at first, using jni, we disabled print screen while our application had the focus, this way, allowing other older applications still to use the print-screen button when they had focus. (We do not own and cannot modify older applications.)
But, we have found and opening where sometimes the print screen does not disable, and allowing the user to print out the documents.
Now I need to fix it.
My current theory to attempt bypassing goes like this.
Because openGL uses hardware acceleration, and requires to be very fast, and it does not draw to the operating system's GDI interface, leaving the image as a blank area. Example of this would be playing a movie, pressing print screen. And paste to paint program (Player should use hardware drawing like opengl.
I'm am 2 days away from testing this 100% for sure on OS/2 But I'm sure it will work fine.
My problem comes in as follows.
I need to make the application render using OpenGL so that none of these images are rendered to the operating system gdi.
I also need the quickest solution of all.
The ways I currently see possible...
- Create a Java2D Graphics object that uses JNI to do opengl drawing. Then overiding a JFrame, that passes that graphics object. This method seems like it could take a long while.
- Create a JFrame that paints all it's componenets to a Graphics2D Object from a BufferedImage. Pass the data to a jni call to draw the image. (Possibly shorter method?)
The reason for wanting to draw the whole application is that I cannot popup another window to display the images. It needs to be intact with our current application. Also, this will be reused at allot of our other clients that need the same security.
Can anyone give me suggestions, area's to look at, or even pointers to existing stuff I could use.
Thank you for reading this much.