Files
tenmon/imagescrollareagl.h
T
2019-11-23 21:11:33 +01:00

49 lines
1.0 KiB
C++

#ifndef IMAGESCROLLAREAGL_H
#define IMAGESCROLLAREAGL_H
#include <memory>
#include <QObject>
#include <QOpenGLWidget>
#include <QOpenGLFunctions>
#include <QOpenGLShaderProgram>
#include <QOpenGLBuffer>
#include <QOpenGLTexture>
#include <QOpenGLVertexArrayObject>
#include "rawimage.h"
typedef enum
{
Linear,
Log,
Sqrt,
Power,
Asinh,
}StretchFunc;
class ImageScrollAreaGL : public QOpenGLWidget
{
Q_OBJECT
QOpenGLFunctions *f;
std::unique_ptr<QOpenGLShaderProgram> m_program;
std::unique_ptr<QOpenGLBuffer> m_buffer;
std::unique_ptr<QOpenGLTexture> m_image;
std::unique_ptr<QOpenGLVertexArrayObject> m_vao;
int m_width, m_height;
float m_low;
float m_high;
float m_range;
public:
explicit ImageScrollAreaGL(QWidget *parent = nullptr);
~ImageScrollAreaGL();
void setImage(RawImageAbs *image);
public slots:
void setLow(int low);
void setHigh(int high);
protected:
void paintGL();
void resizeGL(int w, int h);
void initializeGL();
};
#endif // IMAGESCROLLAREAGL_H