2016-03-19 06:57:51 +13:00
|
|
|
#ifndef QTOFFLINEGL_H
|
|
|
|
#define QTOFFLINEGL_H
|
|
|
|
|
2016-04-15 17:42:51 +12:00
|
|
|
#include <memory>
|
|
|
|
|
2016-03-19 06:57:51 +13:00
|
|
|
#include <QtOpenGL>
|
|
|
|
#include <QGLFormat>
|
|
|
|
#include <QGLContext>
|
|
|
|
#include <QGLPixelBuffer>
|
|
|
|
|
|
|
|
#include "tofflinegl.h"
|
|
|
|
|
|
|
|
class QtOfflineGL : public TOfflineGL::Imp
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
QOpenGLContext *m_context;
|
|
|
|
QOpenGLContext *m_oldContext;
|
|
|
|
QOffscreenSurface *m_surface;
|
|
|
|
|
2016-04-15 17:42:51 +12:00
|
|
|
QtOfflineGL(TDimension rasterSize, std::shared_ptr<TOfflineGL::Imp> shared);
|
2016-03-19 06:57:51 +13:00
|
|
|
~QtOfflineGL();
|
|
|
|
|
2016-04-15 17:42:51 +12:00
|
|
|
void createContext(TDimension rasterSize, std::shared_ptr<TOfflineGL::Imp> shared);
|
2016-03-19 06:57:51 +13:00
|
|
|
void makeCurrent();
|
|
|
|
void doneCurrent();
|
|
|
|
|
|
|
|
void saveCurrentContext();
|
|
|
|
void restoreCurrentContext();
|
|
|
|
|
|
|
|
void getRaster(TRaster32P raster);
|
|
|
|
};
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
class QtOfflineGLPBuffer : public TOfflineGL::Imp
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
QGLPixelBuffer *m_context;
|
|
|
|
|
|
|
|
QtOfflineGLPBuffer(TDimension rasterSize);
|
|
|
|
~QtOfflineGLPBuffer();
|
|
|
|
|
|
|
|
void createContext(TDimension rasterSize);
|
|
|
|
void makeCurrent();
|
|
|
|
void doneCurrent();
|
|
|
|
|
|
|
|
void getRaster(TRaster32P raster);
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|