tahoma2d/toonz/sources/include/qtofflinegl.h
Shinya Kitaoka d1f6c4e95b REFACTORING: Add final specifiers (#537)
* add final specifiers

* apply clang-format

* fix for macOS
2016-06-29 15:17:12 +09:00

53 lines
1.3 KiB
C++

#pragma once
#ifndef QTOFFLINEGL_H
#define QTOFFLINEGL_H
#include <memory>
#include <QtOpenGL>
#include <QGLFormat>
#include <QGLContext>
#include <QGLPixelBuffer>
#include <QOpenGLFramebufferObject>
#include "tofflinegl.h"
class QtOfflineGL final : public TOfflineGL::Imp {
public:
std::shared_ptr<QOpenGLContext> m_context;
std::shared_ptr<QOpenGLContext> m_oldContext;
std::shared_ptr<QOffscreenSurface> m_surface;
std::shared_ptr<QOpenGLFramebufferObject> m_fbo;
QtOfflineGL(TDimension rasterSize, std::shared_ptr<TOfflineGL::Imp> shared);
~QtOfflineGL();
void createContext(TDimension rasterSize,
std::shared_ptr<TOfflineGL::Imp> shared) override;
void makeCurrent() override;
void doneCurrent() override;
void saveCurrentContext();
void restoreCurrentContext();
void getRaster(TRaster32P raster) override;
};
//-----------------------------------------------------------------------------
class QtOfflineGLPBuffer final : public TOfflineGL::Imp {
public:
std::shared_ptr<QGLPixelBuffer> m_context;
QtOfflineGLPBuffer(TDimension rasterSize);
~QtOfflineGLPBuffer();
void createContext(TDimension rasterSize);
void makeCurrent() override;
void doneCurrent() override;
void getRaster(TRaster32P raster) override;
};
#endif