36 #include <vtkRenderWindow.h> 37 #include <vtkOpenGLRenderWindow.h> 38 #include "QVTKWidget.h" 49 this->preventSharedContextRenderWindowFromBeingShownOnScreen(renderWindow);
50 renderWindow->Render();
53 void RenderWindowFactory::preventSharedContextRenderWindowFromBeingShownOnScreen(
vtkRenderWindowPtr renderWindow)
55 mQvtkWidgetForHidingSharedContextRenderWindow =
new QVTKWidget();
56 mQvtkWidgetForHidingSharedContextRenderWindow->SetRenderWindow(renderWindow);
63 return mRenderWindows[uid];
72 return (mRenderWindows.count(uid) > 0);
77 if(!mSharedRenderWindow)
79 CX_LOG_WARNING() <<
"RenderWindowFactory::getSharedRenderWindow(): No shared opengl renderwindow available.";
81 return mSharedRenderWindow;
86 if(mSharedRenderWindow == sharedRenderWindow)
90 mSharedRenderWindow = sharedRenderWindow;
93 if(opengl_renderwindow)
99 CX_LOG_WARNING() <<
"RenderWindowFactory::setSharedRenderWindow(): got no opengl render window.";
105 return mSharedOpenGLContext;
108 vtkRenderWindowPtr RenderWindowFactory::createRenderWindow(QString uid,
bool offScreenRendering)
111 renderWindow->SetOffScreenRendering(offScreenRendering);
113 mSharedContextCreatedCallback = SharedContextCreatedCallbackPtr::New();
114 mSharedContextCreatedCallback->setRenderWindowFactory(
this);
117 if(!opengl_renderwindow)
119 CX_LOG_ERROR() <<
"The created renderwindow is not an opengl renderwindow.";
121 opengl_renderwindow->AddObserver(vtkCommand::CXSharedContextCreatedEvent, mSharedContextCreatedCallback);
123 mRenderWindows[uid] = renderWindow;
vtkRenderWindowPtr getRenderWindow(QString uid, bool offScreenRendering=false)
vtkSmartPointer< class vtkRenderWindow > vtkRenderWindowPtr
SharedOpenGLContextPtr getSharedOpenGLContext() const
vtkSmartPointer< class vtkOpenGLRenderWindow > vtkOpenGLRenderWindowPtr
boost::shared_ptr< class SharedOpenGLContext > SharedOpenGLContextPtr
vtkRenderWindowPtr getSharedRenderWindow() const
bool renderWindowExists(QString uid)
Namespace for all CustusX production code.