VTK  9.1.0
vtkQWidgetTexture.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkQWidgetTexture.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 #ifndef vtkQWidgetTexture_h
16 #define vtkQWidgetTexture_h
17 
18 #include "vtkGUISupportQtModule.h" // For export macro
19 #include "vtkTextureObject.h"
20 #include <array> // for ivar
21 #include <functional> // for ivar
22 
23 class QGraphicsScene;
24 class QWidget;
25 
33 class VTKGUISUPPORTQT_EXPORT vtkQWidgetTexture : public vtkTextureObject
34 {
35 public:
38  void PrintSelf(ostream& os, vtkIndent indent) override;
39 
41 
44  void SetWidget(QWidget* w);
45  QWidget* GetWidget() { return this->Widget; }
47 
52  QGraphicsScene* GetScene() { return this->Scene; }
53 
58  void Activate() override;
59 
63  void ReleaseGraphicsResources(vtkWindow* win) override;
64 
65 protected:
67  ~vtkQWidgetTexture() override;
68 
69  QGraphicsScene* Scene;
70  QWidget* Widget;
71 
72  // method called when the widget needs repainting
74 
75  // internal method to setup the scene/framebuffer/etc
77 
78  unsigned char* ImageBuffer;
79  std::array<int, 2> ImageBufferDimensions;
80 
81 private:
82  vtkQWidgetTexture(const vtkQWidgetTexture&) = delete;
83  void operator=(const vtkQWidgetTexture&) = delete;
84 };
85 
86 #endif
a simple class to control print indentation
Definition: vtkIndent.h:34
Allows a QWidget to be used as a texture in VTK with OpenGL.
QWidget * GetWidget()
Set/Get the QWidget that this TextureObject will render/use.
void Activate() override
Activate and Bind the texture.
void ReleaseGraphicsResources(vtkWindow *win) override
Free resources.
std::array< int, 2 > ImageBufferDimensions
QGraphicsScene * Scene
void AllocateFromWidget()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
QGraphicsScene * GetScene()
get the QScene used for rendering, this is where events will be forwarded to.
static vtkQWidgetTexture * New()
void SetWidget(QWidget *w)
Set/Get the QWidget that this TextureObject will render/use.
std::function< void()> RedrawMethod
~vtkQWidgetTexture() override
unsigned char * ImageBuffer
abstracts an OpenGL texture object.
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
@ Scene
Definition: vtkX3D.h:160
@ function
Definition: vtkX3D.h:255