Skip to content

Commit c83717f

Browse files
committed
API to create a qvtk opengl widget
1 parent 70d7457 commit c83717f

2 files changed

Lines changed: 26 additions & 8 deletions

File tree

src/QtUtils/Utils/QtRenderResources.cc

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@
3333
// QtUtils includes
3434
#include <QtUtils/Utils/QtRenderResources.h>
3535

36+
#include <vtkGenericOpenGLRenderWindow.h>
37+
#include <vtkNew.h>
38+
3639
namespace QtUtils
3740
{
3841

@@ -146,16 +149,26 @@ bool QtRenderResourcesContext::create_render_context( Core::RenderContextHandle&
146149
return context->is_valid();
147150
}
148151

149-
QtRenderWidget* QtRenderResourcesContext::create_qt_render_widget( QWidget* parent,
152+
QtRenderWidget* QtRenderResourcesContext::create_qt_render_widget( QWidget* parent,
150153
Core::AbstractViewerHandle viewer )
151154
{
152155
CORE_LOG_DEBUG( "Create an OpenGL widget" );
153156

154-
return new QtRenderWidget( this->private_->format_, parent,
157+
return new QtRenderWidget( this->private_->format_, parent,
155158
this->private_->shared_widget_, viewer );
156159
}
157160

158-
QtTransferFunctionWidget* QtRenderResourcesContext::create_qt_transfer_function_widget(
161+
QVTKRenderWidget* QtRenderResourcesContext::create_qvtk_render_widget( QWidget* parent, Core::AbstractViewerHandle viewer)
162+
{
163+
CORE_LOG_DEBUG( "Create a QVTK widget" );
164+
165+
QVTKRenderWidget* w = new QVTKRenderWidget(parent);
166+
vtkNew<vtkGenericOpenGLRenderWindow> renWin;
167+
w->setRenderWindow(renWin);
168+
return w;
169+
}
170+
171+
QtTransferFunctionWidget* QtRenderResourcesContext::create_qt_transfer_function_widget(
159172
QWidget* parent, Core::TransferFunctionHandle tf )
160173
{
161174
return new QtTransferFunctionWidget( this->private_->format_, parent,
@@ -183,10 +196,10 @@ Core::RenderContextHandle QtRenderResourcesContext::get_current_context()
183196
{
184197
// NOTE: We don't want to delete the context after the handle goes out of scope,
185198
// so we pass a NOP deleter to shared_ptr
186-
return Core::RenderContextHandle( new QtRenderContext( QGLContextHandle(
199+
return Core::RenderContextHandle( new QtRenderContext( QGLContextHandle(
187200
const_cast< QGLContext* >( current_context ), SharedPtrNopDeleter() ) ) );
188201
}
189-
202+
190203
return Core::RenderContextHandle();
191204
}
192205

src/QtUtils/Utils/QtRenderResources.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
3333
# pragma once
34-
#endif
34+
#endif
3535

3636
// Glew include
3737
#include <GL/glew.h>
@@ -51,6 +51,8 @@
5151
#include <QtUtils/Utils/QtRenderWidget.h>
5252
#include <QtUtils/Utils/QtTransferFunctionWidget.h>
5353

54+
#include <QVTKRenderWidget.h>
55+
5456
namespace QtUtils
5557
{
5658

@@ -60,9 +62,9 @@ namespace QtUtils
6062
// Forward declarations
6163
class QtRenderResourcesContext;
6264
class QtRenderResourcesContextPrivate;
63-
typedef boost::shared_ptr< QtRenderResourcesContext >
65+
typedef boost::shared_ptr< QtRenderResourcesContext >
6466
QtRenderResourcesContextHandle;
65-
typedef boost::shared_ptr< QtRenderResourcesContextPrivate >
67+
typedef boost::shared_ptr< QtRenderResourcesContextPrivate >
6668
QtRenderResourcesContextPrivateHandle;
6769

6870
// Class definition
@@ -82,6 +84,9 @@ class QtRenderResourcesContext : public Core::RenderResourcesContext
8284
/// Create a QtRenderWidget associated with the given viewer.
8385
QtRenderWidget* create_qt_render_widget( QWidget* parent, Core::AbstractViewerHandle viewer );
8486

87+
/// Create a vtk render widget
88+
QVTKRenderWidget* create_qvtk_render_widget( QWidget* parent, Core::AbstractViewerHandle viewer );
89+
8590
/// CREATE_QT_TRANSFER_FUNCTION_WIDGET:
8691
/// Create a QtTransferFunctionWidget associated with the given transfer function.
8792
QtTransferFunctionWidget* create_qt_transfer_function_widget( QWidget* parent,

0 commit comments

Comments
 (0)