1 #ifndef VOGLEDITOR_STATETREETEXENVITEM_H
2 #define VOGLEDITOR_STATETREETEXENVITEM_H
4 #include "vogleditor_statetreeitem.h"
6 class vogl_texenv_state;
8 class vogleditor_stateTreeTexEnvStateVecDiffableItem : public vogleditor_stateTreeStateVecDiffableItem
11 vogleditor_stateTreeTexEnvStateVecDiffableItem(GLenum target, GLenum enumId, unsigned int index, unsigned int numComponents, QString name, QString value, vogleditor_stateTreeItem* parent);
13 virtual void set_diff_base_state(const vogl_state_vector* pBaseState) { VOGL_NOTE_UNUSED(pBaseState); VOGL_ASSERT(!"This version of the function is not supported for vogleditor_stateTreeTexEnvStateVecDiffableItem"); }
14 void set_diff_base_state(const vogl_context_info* pInfo, const vogl_texenv_state* pBaseState)
16 m_pDiffBaseInfo = pInfo;
17 m_pDiffBaseState = pBaseState;
20 GLenum get_target() const { return m_target; }
26 unsigned int m_numComponents;
27 const vogl_context_info* m_pDiffBaseInfo;
28 const vogl_texenv_state* m_pDiffBaseState;
31 class vogleditor_stateTreeTexEnvStateVecEnumItem : public vogleditor_stateTreeTexEnvStateVecDiffableItem
34 vogleditor_stateTreeTexEnvStateVecEnumItem(GLenum target, QString glenumName, GLenum name, unsigned int index, int* values, unsigned int numComponents, vogleditor_stateTreeItem* parent, vogl_texenv_state& state);
35 virtual ~vogleditor_stateTreeTexEnvStateVecEnumItem() { m_pState = NULL; }
37 virtual bool hasChanged() const;
38 virtual QString getDiffedValue() const;
41 vogl_texenv_state* m_pState;
44 class vogleditor_stateTreeTexEnvStateVecFloatItem : public vogleditor_stateTreeTexEnvStateVecDiffableItem
47 vogleditor_stateTreeTexEnvStateVecFloatItem(GLenum target, QString glenumName, GLenum name, unsigned int index, float* values, unsigned int numComponents, vogleditor_stateTreeItem* parent, vogl_texenv_state& state);
48 virtual ~vogleditor_stateTreeTexEnvStateVecFloatItem() { m_pState = NULL; }
50 virtual bool hasChanged() const;
51 virtual QString getDiffedValue() const;
54 vogl_texenv_state* m_pState;
57 class vogleditor_stateTreeTexEnvItem: public vogleditor_stateTreeItem
60 vogleditor_stateTreeTexEnvItem(QString name, vogleditor_stateTreeItem* parent, vogl_texenv_state& state, const vogl_context_info& info);
61 virtual ~vogleditor_stateTreeTexEnvItem()
64 m_pDiffBaseState = NULL;
65 m_pDiffBaseInfo = NULL;
68 void set_diff_base_state(const vogl_context_info* pInfo, const vogl_texenv_state* pBaseState);
71 vogl_texenv_state* m_pState;
72 const vogl_texenv_state* m_pDiffBaseState;
73 const vogl_context_info* m_pDiffBaseInfo;
74 vogl::vector<vogleditor_stateTreeTexEnvStateVecDiffableItem*> m_diffableItems;
78 #endif // VOGLEDITOR_STATETREETEXENVITEM_H