I've come upon a reasonable solution based on some tests. Thanks again for the help.
Brian On Fri Jan 18 14:27 , Brian <[EMAIL PROTECTED]> sent: > >Thanks for the suggestions, Stephan and Robert. > >I've never used PBOs before, and judging from the header, that is the correct >way to set it up. Once I have the object, is it a simple matter of calling >osg::Texture2D::setImage like: > >texture = new osg::Texture2D; >image = new osg::Image; >image->setImage(m_Width, m_Height, 1, > 4, GL_RGBA, GL_UNSIGNED_BYTE, m_ImageBuffer, > osg::Image::AllocationMode::NO_DELETE); >image->setPixelBufferObject(new osg::PixelBufferObject(image)); >texture->setImage(image); > >If this is correct, is there any other setup needed to complete the process? > >As for the rendering of the Flash movie, the image buffer is updated via a >call to OleDraw(). The call to OleDraw is made in response to a WM_TIMER >message that the Flash control sends. My current implementation is basically: > >OleDraw(...) // draws to a device context which automatically updates the >image buffer, m_ImageBuffer >image->setImage(m_ImageBuffer); // call to osg::Image::setImage > >When you say that you "set the movie's context to the image's data", how is >that done? > > >In regard to using a TextureRectangle, I have tried that approach, but because >I am using a shader to reverse the red and blue pixel components to correct >the coloring, I had trouble getting the shader to cooperate. Plus, I read on >nVidia's web site that fragment shaders are not optimized for non power-of-two >textures. I haven't abandoned this method, but I am curious to know what kind >of performance hit is typically seen? > >Thanks, >Brian > > > > On Fri Jan 18 12:37 , Stephan Huber [EMAIL PROTECTED]> sent: > >>Brian schrieb: >>> Is there a faster alternative than using osg::Image::setImage? Or is there >>> a way that I can directly use HDC that the Flash control renders with OSG? >> >>try using PixelBufferObjects this will increase performance when >>uploading the image to the gpu. >> From my head: image->setPixelBufferObject(new >>osg::PixelBufferObject(image)); >> >>Is your image power-or-two? You mentioned Texture2D, perhaps >>TextureRectangleRect is better suited. >> >>Perhaps you can render directly into the image's data. When rendering >>quicktime-movies I set up the movie's context to the image's data, no >>need to copy the current frame from one buffer to another. and then >>upload it to the GPU: >> >> >>Hope that helps, >> >>Stephan > >_______________________________________________ >osg-users mailing list >[email protected] >http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

