OpenGL multisampling feature is not initialized properly for QVTK widget
This issue was created automatically from an original Mantis Issue. Further discussion may take place here.
Hardware features for vtkWin32OpenGLRenderWindow are configured by "wglChoosePixelFormatARB". For this purpose a temporary window is silently created by SetupPixelFormat method, and a dummy OpenGL context is initialized. However, this method does not work properly for render window created for use with QVTKWidget.
The problem is that the following snippet of code does not create temporary window as it is expected:
==============================================================================
void vtkWin32OpenGLRenderWindow::SetupPixelFormat(HDC hDC, DWORD dwFlags, int debug, int bpp, int zbpp) { // Create a dummy window, needed for calling wglGetProcAddress. #ifdef UNICODE HWND tempId = CreateWindow(L"vtkOpenGL", 0, 0, 0, 0, 1, 1, 0, 0, this->ApplicationInstance, 0); #else HWND tempId = CreateWindow("vtkOpenGL", 0, 0, 0, 0, 1, 1, 0, 0, this->ApplicationInstance, 0); #endif
=============================================================================
The reason is that the "vtkOpenGL" window class is not registered, and as a result -- the returned "tempId" identifier is NULL.
Please have a look at the attached patch, that solves the problem.