Big bang
This commit is contained in:
55
src/magnum_item.h
Normal file
55
src/magnum_item.h
Normal file
@@ -0,0 +1,55 @@
|
||||
#ifndef MAGNUM_ITEM_H
|
||||
#define MAGNUM_ITEM_H
|
||||
|
||||
#include <Magnum/GL/Framebuffer.h>
|
||||
#include <Magnum/Platform/GLContext.h>
|
||||
#include "glclampf.h"
|
||||
#include <QOpenGLFunctions>
|
||||
#include <QtQuick/QQuickFramebufferObject>
|
||||
|
||||
// Forward declaring the renderer to avoid CMake's AUTOMOC
|
||||
// to process Magnum's headers (where it fails)
|
||||
|
||||
class MagnumRenderer;
|
||||
|
||||
class MagnumItem : public QQuickFramebufferObject {
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(qreal t READ t WRITE setT NOTIFY tChanged)
|
||||
Q_PROPERTY(qreal hue READ hue WRITE setHue NOTIFY hueChanged)
|
||||
Q_PROPERTY(qreal count READ count WRITE setCount NOTIFY countChanged)
|
||||
public:
|
||||
MagnumItem();
|
||||
Renderer *createRenderer() const override;
|
||||
|
||||
inline qreal t() const { return m_t; }
|
||||
void setT(qreal t);
|
||||
|
||||
inline qreal hue() const { return m_hue; }
|
||||
void setHue(qreal hue);
|
||||
|
||||
inline qint8 count() const { return m_count; }
|
||||
void setCount(qint8 count);
|
||||
|
||||
signals:
|
||||
void tChanged();
|
||||
void hueChanged();
|
||||
void countChanged();
|
||||
|
||||
protected:
|
||||
void keyPressEvent(QKeyEvent *evt) override;
|
||||
void mousePressEvent(QMouseEvent *evt) override;
|
||||
void mouseReleaseEvent(QMouseEvent *evt) override;
|
||||
void mouseMoveEvent(QMouseEvent *evt) override;
|
||||
void wheelEvent(QWheelEvent *evt) override;
|
||||
|
||||
private:
|
||||
void releaseResources() override;
|
||||
|
||||
qreal m_t;
|
||||
qreal m_hue;
|
||||
qint8 m_count;
|
||||
|
||||
MagnumRenderer *m_renderer;
|
||||
};
|
||||
|
||||
#endif // MAGNUM_ITEM_H
|
||||
Reference in New Issue
Block a user