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

Reply via email to