Image Utilities (IU)
 All Data Structures Namespaces Functions Variables Typedefs Enumerations Friends Groups Pages
qt5imagegpuwidget.h
1 #pragma once
2 
3 #include <QOpenGLWidget>
4 #include <QOpenGLBuffer>
5 #include <QOpenGLShaderProgram>
6 #include <QOpenGLVertexArrayObject>
7 #include <QOpenGLFunctions_3_3_Core>
8 #include "../iucore.h"
9 
10 
11 namespace iu {
19 class Qt5ImageGpuWidget : public QOpenGLWidget, protected QOpenGLFunctions_3_3_Core
20 {
21  Q_OBJECT
22 public:
28  explicit Qt5ImageGpuWidget(const iu::Size<2> sz, QWidget* parent = NULL);
29  virtual ~Qt5ImageGpuWidget();
30 
31 public slots:
48  void update_image(iu::ImageGpu_32f_C1 *im, float minVal, float maxVal);
55  void update_image_colormap(iu::ImageGpu_32f_C1 *im, float minVal, float maxVal);
56 
57 protected:
58 
59  void paintGL();
60  void initializeGL();
61  void resizeGL(int w, int h);
62 
63  void init_cuda();
64 
65  //iu::ImageGpu_8u_C1& img_;
66  GLuint texture_;
67  cudaGraphicsResource_t cuda_img_;
68  QOpenGLBuffer pbo_;
69  iu::Size<2> image_size_;
70 
71  QOpenGLShaderProgram* shader_program_;
72  QOpenGLVertexArrayObject* vao_;
73  QOpenGLBuffer* vbo_;
74 };
75 
76 } // namespace iu
77 
78 
void update_image_colormap(iu::ImageGpu_32f_C1 *im, float minVal, float maxVal)
Qt5ImageGpuWidget(const iu::Size< 2 > sz, QWidget *parent=NULL)
void update_image(iu::ImageGpu_8u_C1 *im)
Template specialization for 2-d unsigned int vectors (size vectors).
Definition: vector.h:525
Allows to display images directly in an OpenGL Widget.
Definition: qt5imagegpuwidget.h:19
Device 2D image class (pitched memory).
Definition: image_gpu.h:34