1 #pragma once 2 #include "Context.h" 3 #include <QQuickFramebufferObject> 4 #include <QMutex> 5 6 class GraphicalDisplay : public QQuickFramebufferObject 7 { 8 Q_OBJECT 9 Q_PROPERTY(Context *context READ context WRITE setContext NOTIFY contextChanged) 10 Q_PROPERTY(QString fragmentShader READ fragmentShader WRITE setFragmentShader NOTIFY fragmentShaderChanged) 11 12 public: 13 QString fragmentShader(); 14 void setFragmentShader(QString fragmentShader); 15 Context *context(); 16 void setContext(Context *context); 17 QMap<const char *, QColor> colors() const; 18 19 signals: 20 void fragmentShaderChanged(QString value); 21 void contextChanged(Context *context); 22 23 protected: 24 QQuickFramebufferObject::Renderer *createRenderer() const override; 25 QString m_fragmentShader; 26 QMutex m_fragmentShaderLock; 27 Context *m_context; 28 }; 29