tahoma2d/toonz/sources/include/qtofflinegl.h

55 lines
1.2 KiB
C
Raw Normal View History

2016-05-17 03:04:11 +12:00
#pragma once
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>
2016-04-18 20:22:43 +12:00
#include <QOpenGLFramebufferObject>
2016-03-19 06:57:51 +13:00
#include "tofflinegl.h"
class QtOfflineGL : public TOfflineGL::Imp
{
public:
2016-04-18 20:22:43 +12:00
std::shared_ptr<QOpenGLContext> m_context;
std::shared_ptr<QOpenGLContext> m_oldContext;
std::shared_ptr<QOffscreenSurface> m_surface;
std::shared_ptr<QOpenGLFramebufferObject> m_fbo;
2016-03-19 06:57:51 +13:00
2016-04-18 20:22:43 +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:
2016-04-18 20:22:43 +12:00
std::shared_ptr<QGLPixelBuffer> m_context;
2016-03-19 06:57:51 +13:00
QtOfflineGLPBuffer(TDimension rasterSize);
~QtOfflineGLPBuffer();
void createContext(TDimension rasterSize);
void makeCurrent();
void doneCurrent();
void getRaster(TRaster32P raster);
};
#endif