glSpline/src/myopenglwidget.h
2018-09-12 18:53:34 +02:00

47 lines
1015 B
C++

#ifndef MYOPENGLWIDGET_H
#define MYOPENGLWIDGET_H
#include <QOpenGLWidget>
#include <QOpenGLFunctions_4_1_Core>
#include <QKeyEvent>
#include <memory>
#include <functional>
#include "scene.h"
class MyOpenGLWidget : public QOpenGLWidget, public QOpenGLFunctions_4_1_Core {
public:
explicit MyOpenGLWidget(QWidget *parent = 0);
~MyOpenGLWidget();
// OpenGL management
void initializeGL() override;
void paintGL() override;
void resizeGL(int width, int height) override;
// Event maagement
void mousePressEvent(QMouseEvent *event) override;
void mouseMoveEvent(QMouseEvent *event) override;
void keyPressEvent(QKeyEvent *event) override;
// Demo management
void activatedemo(unsigned int numdemo);
private :
std::unique_ptr<Scene> _scene;
using DemoConstructors=std::function<Scene*(int, int, MainWindow*)>;
std::vector<DemoConstructors> _democonstructors;
// for event management
std::int64_t _lastime;
};
#endif // MYOPENGLWIDGET_H