Hi Erik,

[EMAIL PROTECTED] wrote:
Apologies if this is a duplicate, the mailing list message didn't seem to come through.
May seem like a strange question but I have an extensive Java2D based renderer 
which currently paints in a backbuffer and is then flipped onto a AWT Panel 
using VolatileImage. Works fine but I'm now faced with very specific 
requirement that I need to draw the graphics onto a native win32 window 
component, meaning I still want all my paint logic to happen in java but the 
actual display needs to be in a native windows app. Unfortunately embedding an 
AWT component is not really an option because it presents all kind of issues 
with multiple event threads etc. (Events still all need to be handled by the 
native component).

I looked at native AWT but it seems to do exactly the reverse of what I need 
;-)  How would I go about achieving this with the least amount of overhead and 
not embed an AWT component inside the win32 window ? All the solutions I came 
up with involved either copying pixels or converting into a different image 
format .. which you simply don't want to happen for each frame. I'm not afraid 
of JNI or using other types of buffers in Java.

  If you create you back buffer (it will probably have to be a
  BufferedImage) with the desired format you won't
  have to do the image format conversion.

  So you'd render to a BI in Java, get the data buffer array,
  get the pointer to data on the native level, then use
  GDI (for example), to create a bitmap, copy the pixels into
  that bitmap (in some cases you may be able to just create
  a header and point to the pixels instead of copying), and
  then BitBlt that bitmap to your window.

  You can take a look at the java's GDI blit loop which
  pretty much does just that.
     
http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/08f77c507252/src/windows/native/sun/java2d/windows/GDIBlitLoops.cpp

  Thanks,
    Dmitri



Any suggestions would be highly appreciated,
Erik
[Message sent by forum member 'evanherc' (evanherc)]

http://forums.java.net/jive/thread.jspa?messageID=285409

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA2D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA2D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to