<div dir="ltr">Hi Alberto,<br><div class="gmail_extra"><br><div class="gmail_quote">On 25 April 2016 at 19:22, Alberto Luaces <span dir="ltr"><<a href="mailto:aluaces@udc.es" target="_blank">aluaces@udc.es</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Indeed it does, for example on my system the signature of the method<br>
changes from<br>
<br>
_ZN3osg14ShaderComposer16releaseGLObjectsEPNS_5StateE<br>
<br>
to<br>
<br>
_ZNK3osg14ShaderComposer16releaseGLObjectsEPNS_5StateE<br></blockquote><div><br></div><div>What's the best way to check the signature?<br></div><div><br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
therefore old programs will not run with this change. I suggest to<br>
additionally keep also the old, non-const method, since they can<br>
co-exist. Old binaries will expose the bug, but at least they will<br>
be able to execute.<br>
<span class=""></span></blockquote><div><br><br></div><div>To the 3.4 branch I've just made the change:<br></div><div><br> $ git diff<br>diff --git a/include/osg/ShaderComposer b/include/osg/ShaderComposer<br>index 68c6d6c..f39d092 100644<br>--- a/include/osg/ShaderComposer<br>+++ b/include/osg/ShaderComposer<br>@@ -39,6 +39,9 @@ class OSG_EXPORT ShaderComposer : public osg::Object<br> virtual osg::Shader* composeMain(const Shaders& shaders);<br> virtual void addShaderToProgram(Program* program, const Shaders& shaders);<br> <br>+ /// kept for backward compatibility<br>+ void releaseGLObjects(osg::State* state) { static_cast<const ShaderComposer*>(this)->releaseGLObjects(state); }<br>+<br> virtual void releaseGLObjects(osg::State* state) const;<br> <br> protected:<br><br><br></div><div>Do you think this will be sufficient?<br><br></div><div>Robert.<br></div><div><br><br><br></div></div></div></div>