1 #ifndef VOGLEDITOR_STATETREERENDERBUFFERITEM_H
2 #define VOGLEDITOR_STATETREERENDERBUFFERITEM_H
4 #include "vogleditor_statetreeitem.h"
6 class vogl_renderbuffer_state;
8 class vogleditor_stateTreeRenderbufferDiffableItem : public vogleditor_stateTreeItem
11 vogleditor_stateTreeRenderbufferDiffableItem(QString name, QString value, vogleditor_stateTreeItem* parent)
12 : vogleditor_stateTreeItem(name, value, parent),
13 m_pDiffBaseState(NULL)
17 void set_diff_base_state(const vogl_renderbuffer_state* pBaseState)
19 m_pDiffBaseState = pBaseState;
22 virtual bool hasChanged() const = 0;
24 const vogl_renderbuffer_state* m_pDiffBaseState;
27 class vogleditor_stateTreeRenderbufferIntItem : public vogleditor_stateTreeRenderbufferDiffableItem
30 vogleditor_stateTreeRenderbufferIntItem(QString name, GLenum enumName, vogleditor_stateTreeItem* parent, const vogl_renderbuffer_state& state);
31 virtual ~vogleditor_stateTreeRenderbufferIntItem() { m_pState = NULL; }
33 virtual bool hasChanged() const;
34 virtual QString getDiffedValue() const;
38 const vogl_renderbuffer_state* m_pState;
41 class vogleditor_stateTreeRenderbufferEnumItem : public vogleditor_stateTreeRenderbufferDiffableItem
44 vogleditor_stateTreeRenderbufferEnumItem(QString name, GLenum enumName, vogleditor_stateTreeItem* parent, const vogl_renderbuffer_state& state);
45 virtual ~vogleditor_stateTreeRenderbufferEnumItem() { m_pState = NULL; }
47 virtual bool hasChanged() const;
48 virtual QString getDiffedValue() const;
52 const vogl_renderbuffer_state* m_pState;
55 class vogleditor_stateTreeRenderbufferItem : public vogleditor_stateTreeItem
58 vogleditor_stateTreeRenderbufferItem(QString name, GLuint64 handle, vogleditor_stateTreeItem* parent, const vogl_renderbuffer_state& state);
59 virtual ~vogleditor_stateTreeRenderbufferItem()
61 m_pState = NULL; m_pDiffBaseState = NULL;
64 void set_diff_base_state(const vogl_renderbuffer_state* pBaseState) {
65 m_pDiffBaseState = pBaseState;
66 for (vogleditor_stateTreeRenderbufferDiffableItem** iter = m_diffableItems.begin(); iter != m_diffableItems.end(); iter++)
68 (*iter)->set_diff_base_state(pBaseState);
72 GLuint64 get_handle() const { return m_handle; }
76 const vogl_renderbuffer_state* m_pState;
77 const vogl_renderbuffer_state* m_pDiffBaseState;
78 vogl::vector<vogleditor_stateTreeRenderbufferDiffableItem*> m_diffableItems;
81 #endif // VOGLEDITOR_STATETREERENDERBUFFERITEM_H