]> git.cworth.org Git - vogl/blob - src/vogleditor/vogleditor_statetreearbprogramenvitem.cpp
Initial vogl checkin
[vogl] / src / vogleditor / vogleditor_statetreearbprogramenvitem.cpp
1 #include "vogleditor_statetreearbprogramenvitem.h"
2
3 #include "vogl_arb_program_state.h"
4
5 vogleditor_stateTreeArbProgramEnvItem::vogleditor_stateTreeArbProgramEnvItem(QString name, unsigned int index, vogleditor_stateTreeItem* parentNode, vogl_arb_program_environment_state& state)
6    : vogleditor_stateTreeItem(name, "", parentNode),
7      m_index(index),
8      m_pState(&state),
9      m_pDiffBaseState(NULL)
10 {
11    setValue(m_pState->get_cur_program(index));
12 }
13
14 bool vogleditor_stateTreeArbProgramEnvItem::hasChanged() const
15 {
16     if (m_pDiffBaseState == NULL)
17         return false;
18
19     for (unsigned int i = 0; i < m_pDiffBaseState->cNumTargets; i++)
20     {
21         if (m_pDiffBaseState->get_target_enum(i) == m_pState->get_target_enum(m_index))
22         {
23             return m_pDiffBaseState->get_cur_program(i) != m_pState->get_cur_program(m_index);
24         }
25     }
26
27     // didn't find the current enum in the base state, so this one must be new
28     return true;
29 }