Java-Gaming.org
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
Featured games (78)
games approved by the League of Dukes
Games in Showcase (404)
games submitted by our members
Games in WIP (289)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Offscreen rendering revisited  (Read 783 times)
0 Members and 1 Guest are viewing this topic.
Offline dolachin

Senior Newbie




Java games rock!


« Posted 2003-11-24 04:50:47 »

Hi,

I'm revisiting a topic from three months ago. I've been trying to incorporate the advice I got at this forum at get it to work on my own - and failed!!!

I'm working on a scientific application which shows the evolution of a shape. Every once in a while I want to be able to snap a picture of what's going on. I don't want to overload you, potential helpers, with code so I will just present the code for my takeAPicture procedure (with comments) and may be you will be able to spot something. I am very happy to post more code.


Many thanks in advance for any advice.


 public BufferedImage takeAPicture(int inWidth, int inHeight) {

   if (myOffScreenBuffer == null) { // class member elem
     GLCapabilities pbCaps = new GLCapabilities();
     pbCaps.setDoubleBuffered(false);
     myOffScreenBuffer = myCanvas3D.createOffscreenDrawable(pbCaps, inWidth, inHeight);
     myOffScreenBuffer.addGLEventListener(new OffScreenGLEventListener());

// I have a hard time getting init() to be called in
// OffScreenGLEventListener. I have to resize the live
// window, call takeAPicture again, and only then it
// gets called.

   }

   BufferedImage pbImage = new BufferedImage(inWidth, inHeight, BufferedImage.TYPE_3BYTE_BGR);
   DataBufferByte dbByte = (DataBufferByte) pbImage.getRaster().getDataBuffer();
   myOffScreenBuffer.display();

   myOffScreenBuffer.getGL().glReadPixels(0, 0, inWidth, inHeight, GL.GL_BGR, GL.GL_UNSIGNED_BYTE, dbByte.getData());

   return pbImage; // returns nothing but black pixels
 }

Would you like to see my OffScreenGLEventListener?
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
 
Browse for soundtracks for your game!

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

The invasion has landed! On Mars! And you're there to beat 'em!
cubemaster21 (43 views)
2013-05-17 21:29:12

alaslipknot (52 views)
2013-05-16 21:24:48

gouessej (80 views)
2013-05-16 00:53:38

gouessej (80 views)
2013-05-16 00:17:58

theagentd (89 views)
2013-05-15 15:01:13

theagentd (82 views)
2013-05-15 15:00:54

StreetDoggy (124 views)
2013-05-14 15:56:26

kutucuk (148 views)
2013-05-12 17:10:36

kutucuk (148 views)
2013-05-12 15:36:09

UnluckyDevil (158 views)
2013-05-12 05:09:57
Complex number cookbook
by Roquen
2013-04-24 12:47:31

2D Dynamic Lighting
by Oskuro
2013-04-17 16:46:12

2D Dynamic Lighting
by Oskuro
2013-04-17 16:45:57

2D Dynamic Lighting
by Oskuro
2013-04-17 16:23:20

Noise (bandpassed white)
by Roquen
2013-04-05 17:36:01

Noise (bandpassed white)
by Roquen
2013-04-03 16:17:38

Java Data structures
by Roquen
2013-03-29 13:21:12

Topic Request
by kutucuk
2013-03-22 21:42:01
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!
Page created in 0.07 seconds with 21 queries.