#ifndef QTAH_WRAP_QOPENGLWINDOW_HPP
#define QTAH_WRAP_QOPENGLWINDOW_HPP
// This file is part of Qtah.
//
// Copyright 2015-2021 The Qtah Authors.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see .
#if QT_VERSION >= 0x050400
#include
#include
#include "b_callback.hpp"
namespace qtah {
namespace qtahopenglwindow {
class QtahOpenGLWindow : public QOpenGLWindow {
public:
QtahOpenGLWindow(UpdateBehavior updateBehavior = NoPartialUpdate, QWindow* parent = Q_NULLPTR)
: QOpenGLWindow(updateBehavior, parent) {}
QtahOpenGLWindow(
QOpenGLContext* shareContext,
UpdateBehavior updateBehavior = NoPartialUpdate,
QWindow *parent = Q_NULLPTR)
: QOpenGLWindow(shareContext, updateBehavior, parent) {}
virtual ~QtahOpenGLWindow() {}
virtual void onInitializeGL() {
if (onInitializeGL_) {
onInitializeGL_();
}
}
virtual void onPaintGL() {
if (onPaintGL_) {
onPaintGL_();
}
}
virtual void onPaintOverGL() {
if (onPaintOverGL_) {
onPaintOverGL_();
}
}
virtual void onPaintUnderGL() {
if (onPaintUnderGL_) {
onPaintUnderGL_();
}
}
virtual void onResizeGL(int width, int height) {
if (onResizeGL_) {
onResizeGL_(width, height);
}
}
void onInitializeGL(CallbackVoid handler) {
onInitializeGL_ = handler;
}
void onPaintGL(CallbackVoid handler) {
onPaintGL_ = handler;
}
void onPaintOverGL(CallbackVoid handler) {
onPaintOverGL_ = handler;
}
void onPaintUnderGL(CallbackVoid handler) {
onPaintUnderGL_ = handler;
}
void onResizeGL(CallbackIntIntVoid handler) {
onResizeGL_ = handler;
}
private:
CallbackVoid onInitializeGL_;
CallbackVoid onPaintGL_;
CallbackVoid onPaintOverGL_;
CallbackVoid onPaintUnderGL_;
CallbackIntIntVoid onResizeGL_;
};
} // namespace qtahopenglwindow
} // namespace qtah
#endif
#endif // QTAH_WRAP_QOPENGLWINDOW_HPP