Blame toonz/sources/include/qtofflinegl.h
|
Shinya Kitaoka |
810553 |
#pragma once
|
|
Shinya Kitaoka |
810553 |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef QTOFFLINEGL_H
|
|
Toshihiro Shimizu |
890ddd |
#define QTOFFLINEGL_H
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
c3fda3 |
#include <memory>
|
|
Shinya Kitaoka |
c3fda3 |
|
|
Toshihiro Shimizu |
890ddd |
#include <QtOpenGL>
|
|
Toshihiro Shimizu |
890ddd |
#include <QGLFormat>
|
|
Toshihiro Shimizu |
890ddd |
#include <QGLContext>
|
|
Toshihiro Shimizu |
890ddd |
#include <QGLPixelBuffer>
|
|
tomosu |
794bf5 |
#include <QOpenGLFramebufferObject>
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#include "tofflinegl.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
d1f6c4 |
class QtOfflineGL final : public TOfflineGL::Imp {
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
std::shared_ptr<QOpenGLContext> m_context;
|
|
Shinya Kitaoka |
120a6e |
std::shared_ptr<QOpenGLContext> m_oldContext;
|
|
Shinya Kitaoka |
120a6e |
std::shared_ptr<QOffscreenSurface> m_surface;
|
|
Shinya Kitaoka |
120a6e |
std::shared_ptr<QOpenGLFramebufferObject> m_fbo;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
QtOfflineGL(TDimension rasterSize, std::shared_ptr<TOfflineGL::Imp> shared);
|
|
Shinya Kitaoka |
120a6e |
~QtOfflineGL();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void createContext(TDimension rasterSize,
|
|
Shinya Kitaoka |
473e70 |
std::shared_ptr<TOfflineGL::Imp> shared) override;
|
|
Shinya Kitaoka |
473e70 |
void makeCurrent() override;
|
|
Shinya Kitaoka |
473e70 |
void doneCurrent() override;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void saveCurrentContext();
|
|
Shinya Kitaoka |
120a6e |
void restoreCurrentContext();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
473e70 |
void getRaster(TRaster32P raster) override;
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
d1f6c4 |
class QtOfflineGLPBuffer final : public TOfflineGL::Imp {
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
std::shared_ptr<QGLPixelBuffer> m_context;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
QtOfflineGLPBuffer(TDimension rasterSize);
|
|
Shinya Kitaoka |
120a6e |
~QtOfflineGLPBuffer();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void createContext(TDimension rasterSize);
|
|
Shinya Kitaoka |
473e70 |
void makeCurrent() override;
|
|
Shinya Kitaoka |
473e70 |
void doneCurrent() override;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
473e70 |
void getRaster(TRaster32P raster) override;
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#endif
|