[osg-users] Texture2D subload woes

2015-03-06 Thread Eric Sokolowsky
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

2015-03-06 Thread Robert Osfield
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

2015-03-06 Thread Eric Sokolowsky
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

2015-03-06 Thread Eric Sokolowsky
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