[osg-users] Texture2D subload woes
I have need for some custom code to run after the Texture2D::applyTexImage2D_subload function is called. (I am reading back the image from OpenGL, which might have been compressed by the graphics card, and saving it to disk.) So I have been using a subloadCallback to put the custom code in place. This works, but I don't require any custom code for the Texture2D::applyTexImage2D_load function. But since the subloadCallback requires me to implement both the load and the subload I must do both. But I can't replicate the code in Texture2D::apply in my subloadCallback because there are lots of mutable members in Texture2D and getting them from the subloadCallback doesn't make them mutable for me, so I get lots of errors of losing constness and qualifiers if I try this path. So I am wondering how best to proceed from here. Should I derive a class from Texture2D so I can intercept calls to apply(), then call the base class version and do my custom processing from there, or can we add a hook to call a custom callback after the Texture2D::applyTexImage2D_load and/or the Texture2D::applyTexImage2D_subload functions? Or is there a better way to read the texture back from the graphics card that is independent of the Texture2D::apply function? Of course this will need to be done in the draw thread. Any help will be appreciated.. Eric ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] Texture2D subload woes
Hi Eric, It's a long time since I looked at the subload callback. Having the load and subload methods available in osg::Texture2D seems like a sensible option. However, it might be that you don't need the callback at all. Have you looked at the osg::Image::Image::readImageFromCurrentTexture(..) method? Robert. On 6 March 2015 at 19:50, Eric Sokolowsky e...@byu.net wrote: I have need for some custom code to run after the Texture2D::applyTexImage2D_subload function is called. (I am reading back the image from OpenGL, which might have been compressed by the graphics card, and saving it to disk.) So I have been using a subloadCallback to put the custom code in place. This works, but I don't require any custom code for the Texture2D::applyTexImage2D_load function. But since the subloadCallback requires me to implement both the load and the subload I must do both. But I can't replicate the code in Texture2D::apply in my subloadCallback because there are lots of mutable members in Texture2D and getting them from the subloadCallback doesn't make them mutable for me, so I get lots of errors of losing constness and qualifiers if I try this path. So I am wondering how best to proceed from here. Should I derive a class from Texture2D so I can intercept calls to apply(), then call the base class version and do my custom processing from there, or can we add a hook to call a custom callback after the Texture2D::applyTexImage2D_load and/or the Texture2D::applyTexImage2D_subload functions? Or is there a better way to read the texture back from the graphics card that is independent of the Texture2D::apply function? Of course this will need to be done in the draw thread. Any help will be appreciated.. Eric ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] Texture2D subload woes
Hi Robert, I am using that function to get the image from the texture in my custom subload callback. The problem is how or when do I call that? It must be in the draw thread, so that's why I was using a subload callback, but I no longer want to override the default processing found in Texture2D::apply(), so I don't want to use a subload callback any more. Eric On Fri, Mar 6, 2015 at 3:45 PM, Robert Osfield robert.osfi...@gmail.com wrote: Hi Eric, It's a long time since I looked at the subload callback. Having the load and subload methods available in osg::Texture2D seems like a sensible option. However, it might be that you don't need the callback at all. Have you looked at the osg::Image::Image::readImageFromCurrentTexture(..) method? Robert. On 6 March 2015 at 19:50, Eric Sokolowsky e...@byu.net wrote: I have need for some custom code to run after the Texture2D::applyTexImage2D_subload function is called. (I am reading back the image from OpenGL, which might have been compressed by the graphics card, and saving it to disk.) So I have been using a subloadCallback to put the custom code in place. This works, but I don't require any custom code for the Texture2D::applyTexImage2D_load function. But since the subloadCallback requires me to implement both the load and the subload I must do both. But I can't replicate the code in Texture2D::apply in my subloadCallback because there are lots of mutable members in Texture2D and getting them from the subloadCallback doesn't make them mutable for me, so I get lots of errors of losing constness and qualifiers if I try this path. So I am wondering how best to proceed from here. Should I derive a class from Texture2D so I can intercept calls to apply(), then call the base class version and do my custom processing from there, or can we add a hook to call a custom callback after the Texture2D::applyTexImage2D_load and/or the Texture2D::applyTexImage2D_subload functions? Or is there a better way to read the texture back from the graphics card that is independent of the Texture2D::apply function? Of course this will need to be done in the draw thread. Any help will be appreciated.. Eric ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] Texture2D subload woes
I subclassed Texture2D and implemented apply(), and it now works very well, without duplicating code. I'm not sure if there's a better solution but I'm happy with this one. Eric On Fri, Mar 6, 2015 at 3:52 PM, Eric Sokolowsky e...@byu.net wrote: Hi Robert, I am using that function to get the image from the texture in my custom subload callback. The problem is how or when do I call that? It must be in the draw thread, so that's why I was using a subload callback, but I no longer want to override the default processing found in Texture2D::apply(), so I don't want to use a subload callback any more. Eric On Fri, Mar 6, 2015 at 3:45 PM, Robert Osfield robert.osfi...@gmail.com wrote: Hi Eric, It's a long time since I looked at the subload callback. Having the load and subload methods available in osg::Texture2D seems like a sensible option. However, it might be that you don't need the callback at all. Have you looked at the osg::Image::Image::readImageFromCurrentTexture(..) method? Robert. On 6 March 2015 at 19:50, Eric Sokolowsky e...@byu.net wrote: I have need for some custom code to run after the Texture2D::applyTexImage2D_subload function is called. (I am reading back the image from OpenGL, which might have been compressed by the graphics card, and saving it to disk.) So I have been using a subloadCallback to put the custom code in place. This works, but I don't require any custom code for the Texture2D::applyTexImage2D_load function. But since the subloadCallback requires me to implement both the load and the subload I must do both. But I can't replicate the code in Texture2D::apply in my subloadCallback because there are lots of mutable members in Texture2D and getting them from the subloadCallback doesn't make them mutable for me, so I get lots of errors of losing constness and qualifiers if I try this path. So I am wondering how best to proceed from here. Should I derive a class from Texture2D so I can intercept calls to apply(), then call the base class version and do my custom processing from there, or can we add a hook to call a custom callback after the Texture2D::applyTexImage2D_load and/or the Texture2D::applyTexImage2D_subload functions? Or is there a better way to read the texture back from the graphics card that is independent of the Texture2D::apply function? Of course this will need to be done in the draw thread. Any help will be appreciated.. Eric ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org