Dear developer,<br><br>I have been using vtkOpenGLVolumeTextureMapper3D in many programs for some time, but when I updated my VTK version to today's git clone my renderer began to crash.<br><br>I debugged the error all the way to vtkOpenGLVolumeTextureMapper3D::Initialize() with this code at the beginning of the method:<br>
<br><span style="color: rgb(51, 102, 255);">******************************************************************************************</span><br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);">{</span><br style="color: rgb(51, 102, 255);">
<span style="color: rgb(51, 102, 255);">this->Initialized = 1;</span><br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);">vtkOpenGLExtensionManager * extensions = vtkOpenGLExtensionManager::New();</span><br style="color: rgb(51, 102, 255);">
<span style="color: rgb(51, 102, 255);">extensions->SetRenderWindow(NULL); // set render window to the current one.</span><br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);"> </span><br style="color: rgb(51, 102, 255);">
<span style="color: rgb(51, 102, 255);">int supports_texture3D=extensions->ExtensionSupported( "GL_VERSION_1_2" );</span><br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);">...</span><br style="color: rgb(51, 102, 255);">
<span style="color: rgb(51, 102, 255);">}</span><br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);">******************************************************************************************</span><br>
<br>but found this block within vtkOpenGLExtensionManager::ExtensionSupported:<br><br><span style="color: rgb(51, 102, 255);">******************************************************************************************</span><br style="color: rgb(51, 102, 255);">
<span style="color: rgb(51, 102, 255);">int vtkOpenGLExtensionManager::ExtensionSupported(const char *name)</span><br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);">{</span><br style="color: rgb(51, 102, 255);">
<span style="color: rgb(51, 102, 255);">...</span><br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);">...</span><br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);">// Woraround for a nVidia bug in indirect/remote rendering mode (ssh -X)</span><br style="color: rgb(51, 102, 255);">
<span style="color: rgb(51, 102, 255);"> // The version returns is not the one actually supported.</span><br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);"> // For example, the version returns is greater or equal to 2.1</span><br style="color: rgb(51, 102, 255);">
<span style="color: rgb(51, 102, 255);"> // but where PBO (which are core in 2.1) are not actually supported.</span><br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);"> // In this case, force the version to be 1.1 (minimal). Anything above</span><br style="color: rgb(51, 102, 255);">
<span style="color: rgb(51, 102, 255);"> // will be requested only through extensions.</span><br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);"> // See ParaView bug </span><br style="color: rgb(51, 102, 255);">
<span style="color: rgb(51, 102, 255);"> if(result && !this->RenderWindow->IsDirect())</span><br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);"> {</span><br style="color: rgb(51, 102, 255);">
<span style="color: rgb(51, 102, 255);"> if (result && strncmp(name, "GL_VERSION_",11) == 0)</span><br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);"> {</span><br style="color: rgb(51, 102, 255);">
<span style="color: rgb(51, 102, 255);"> // whatever is the OpenGL version, return false.</span><br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);"> // (nobody asks for GL_VERSION_1_1)</span><br style="color: rgb(51, 102, 255);">
<span style="color: rgb(51, 102, 255);"> result=0;</span><br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);"> }</span><br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);"> }</span><br style="color: rgb(51, 102, 255);">
<br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);">....</span><br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);">....</span><br style="color: rgb(51, 102, 255);"><span style="color: rgb(51, 102, 255);">}<br>
******************************************************************************************</span><br><br>It crashes because we try to use a method on a NULL pointer (this->RenderWindow) in the first IF statement.<br>I temporarily fixed the crashing problem by adding && this->RenderWindow to the IF statement.<br>
<br>Isaac<br>