从vtk 5.3迁移到vtk 6.2后出现VtkOpenGLRenderer错误

VtkOpenGLRenderer errors after migration from vtk 5.3 to vtk 6.2

本文关键字:vtk VtkOpenGLRenderer 错误 迁移      更新时间:2023-10-16

我正在C++中的Windows 7上开发VisualStudio2008。

我刚刚将Vtk版本5.10更改为6.2,我的程序按照预期运行,但有一件事,我在vtkOutputWindow:中收到了这种错误消息

ERROR: In .vtkOpenGLRenderer.cxx, line 126
vtkOpenGLRenderer (03A4D058): failed ater ClearLights 16 OpenGL errors detected
  0 : (1282) Invalid operation
...
ERROR: In .vtkOpenGLRenderer.cxx, line 1202
vtkOpenGLRenderer (03A4D058): failed after Clear 16 OpenGL errors detected
  0 : (1282) Invalid operation
...
ERROR: In .vtkOpenGLCamera.cxx, line 167
vtkOpenGLCamera (03A993E8): failed after Render 16 OpenGL errors detected
  0 : (1282) Invalid operation
...
ERROR: In .vtkOpenGLLight.cxx, line 118
vtkOpenGLLight (03A9C038): failed after Render 16 OpenGL errors detected
  0 : (1282) Invalid operation
...
ERROR: In .vtkOpenGLRenderer.cxx, line 192
vtkOpenGLRenderer (03A4D058): failed after UpdateLights 16 OpenGL errors detected
  0 : (1282) Invalid operation
 ...
ERROR: In .vtkOpenGLRenderer.cxx, line 282
vtkOpenGLRenderer (03A4D058): failed after DeviceRender 16 OpenGL errors detected
  0 : (1282) Invalid operation
....

我真的不知道它是从哪里来的,我在项目的开头添加了这些行(正如我在互联网上看到的)来修复版本的更改,但仍然有这些信息:

  #include <vtkVersion.h>
    #include <vtkAutoInit.h>
    VTK_MODULE_INIT(vtkRenderingOpenGL);
    #define vtkRenderingCore_AUTOINIT  4(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeTypeOpenGL,vtkRenderingOpenGL)
    #define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL)

有人有主意吗?

我终于自己得到了答案,我需要删除ren->Render()行。