]> git.cworth.org Git - vogl/blob - src/vogleditor/vogleditor_statetreerenderbufferitem.cpp
Initial vogl checkin
[vogl] / src / vogleditor / vogleditor_statetreerenderbufferitem.cpp
1 #include "vogleditor_statetreerenderbufferitem.h"
2
3 #include "vogl_renderbuffer_state.h"
4
5 vogleditor_stateTreeRenderbufferIntItem::vogleditor_stateTreeRenderbufferIntItem(QString name, GLenum enumName, vogleditor_stateTreeItem* parent, const vogl_renderbuffer_state& state)
6     : vogleditor_stateTreeRenderbufferDiffableItem(name, "", parent),
7       m_enum(enumName),
8       m_pState(&state)
9 {
10     int val = 0;
11     if (m_pState->get_desc().get_int(m_enum, &val))
12     {
13         setValue(val);
14     }
15 }
16
17 bool vogleditor_stateTreeRenderbufferIntItem::hasChanged() const
18 {
19     if (m_pDiffBaseState == NULL)
20         return false;
21
22     int curVal = 0;
23     int baseVal = 0;
24
25     if (m_pState->get_desc().get_int(m_enum, &curVal) == false)
26     {
27         return true;
28     }
29
30     if (m_pDiffBaseState->get_desc().get_int(m_enum, &baseVal) == false)
31     {
32         return true;
33     }
34
35     return (curVal != baseVal);
36 }
37
38 QString vogleditor_stateTreeRenderbufferIntItem::getDiffedValue() const
39 {
40     if (m_pDiffBaseState == NULL)
41         return "";
42
43     int baseVal = 0;
44     if (m_pDiffBaseState->get_desc().get_int(m_enum, &baseVal) == false)
45     {
46         return "non-existent";
47     }
48
49     return getValueFromInts(&baseVal, 1);
50 }
51
52 //=============================================================================
53
54 vogleditor_stateTreeRenderbufferEnumItem::vogleditor_stateTreeRenderbufferEnumItem(QString name, GLenum enumName, vogleditor_stateTreeItem* parent, const vogl_renderbuffer_state& state)
55     : vogleditor_stateTreeRenderbufferDiffableItem(name, "", parent),
56       m_enum(enumName),
57       m_pState(&state)
58 {
59     int val = 0;
60     if (m_pState->get_desc().get_int(m_enum, &val))
61     {
62         setValue(enum_to_string(val));
63     }
64 }
65
66 bool vogleditor_stateTreeRenderbufferEnumItem::hasChanged() const
67 {
68     if (m_pDiffBaseState == NULL)
69         return false;
70
71     int curVal = 0;
72     int baseVal = 0;
73
74     if (m_pState->get_desc().get_int(m_enum, &curVal) == false)
75     {
76         return true;
77     }
78
79     if (m_pDiffBaseState->get_desc().get_int(m_enum, &baseVal) == false)
80     {
81         return true;
82     }
83
84     return (curVal != baseVal);
85 }
86
87 QString vogleditor_stateTreeRenderbufferEnumItem::getDiffedValue() const
88 {
89     if (m_pDiffBaseState == NULL)
90         return "";
91
92     int baseVal = 0;
93     if (m_pDiffBaseState->get_desc().get_int(m_enum, &baseVal) == false)
94     {
95         return "non-existent";
96     }
97
98     return getValueFromEnums(&baseVal, 1);
99 }
100
101 //=============================================================================
102
103 vogleditor_stateTreeRenderbufferItem::vogleditor_stateTreeRenderbufferItem(QString name, GLuint64 handle, vogleditor_stateTreeItem* parent, const vogl_renderbuffer_state& state)
104     : vogleditor_stateTreeItem(name, "", parent),
105       m_handle(handle),
106       m_pState(&state),
107       m_pDiffBaseState(NULL)
108 {
109     const vogl_renderbuffer_desc& rDesc = m_pState->get_desc();
110     int val = 0;
111 #define GET_INT(name) if (rDesc.get_int(name, &val, 1)) { vogleditor_stateTreeRenderbufferIntItem* pItem = new vogleditor_stateTreeRenderbufferIntItem(#name, name, this, state); this->appendChild(pItem); m_diffableItems.push_back(pItem); }
112 #define GET_ENUM(name) if (rDesc.get_int(name, &val, 1)) { vogleditor_stateTreeRenderbufferEnumItem* pItem = new vogleditor_stateTreeRenderbufferEnumItem(#name, name, this, state); this->appendChild(pItem); m_diffableItems.push_back(pItem); }
113     GET_INT(GL_RENDERBUFFER_WIDTH);
114     GET_INT(GL_RENDERBUFFER_HEIGHT);
115     GET_INT(GL_RENDERBUFFER_SAMPLES);
116     GET_ENUM(GL_RENDERBUFFER_INTERNAL_FORMAT);
117     GET_INT(GL_RENDERBUFFER_RED_SIZE);
118     GET_INT(GL_RENDERBUFFER_GREEN_SIZE);
119     GET_INT(GL_RENDERBUFFER_BLUE_SIZE);
120     GET_INT(GL_RENDERBUFFER_ALPHA_SIZE);
121     GET_INT(GL_RENDERBUFFER_DEPTH_SIZE);
122     GET_INT(GL_RENDERBUFFER_STENCIL_SIZE);
123 #undef GET_INT
124 #undef GET_ENUM
125
126 //        { vogleditor_stateTreeContextInfoUIntItem* pItem = new vogleditor_stateTreeContextInfoUIntItem("GL_MAX_PROGRAM_ENV_PARAMETERS_ARB GL_VERTEX_PROGRAM_ARB", &vogl_context_info::get_max_arb_vertex_program_env_params, this, info); m_diffableItems.push_back(pItem); this->appendChild(pItem); }
127 //        { vogleditor_stateTreeContextInfoUIntItem* pItem = new vogleditor_stateTreeContextInfoUIntItem("GL_MAX_PROGRAM_ENV_PARAMETERS_ARB GL_FRAGMENT_PROGRAM_ARB", &vogl_context_info::get_max_arb_fragment_program_env_params, this, info); m_diffableItems.push_back(pItem); this->appendChild(pItem); }
128 //        { vogleditor_stateTreeContextInfoUIntItem* pItem = new vogleditor_stateTreeContextInfoUIntItem("GL_MAX_PROGRAM_MATRICES_ARB", &vogl_context_info::get_max_arb_program_matrices, this, info); m_diffableItems.push_back(pItem); this->appendChild(pItem); }
129 //        { vogleditor_stateTreeContextInfoUIntItem* pItem = new vogleditor_stateTreeContextInfoUIntItem("GL_MAX_COMBINED_TEXTURE_COORDS", &vogl_context_info::get_max_combined_texture_coords, this, info); m_diffableItems.push_back(pItem); this->appendChild(pItem); }
130 //        { vogleditor_stateTreeContextInfoUIntItem* pItem = new vogleditor_stateTreeContextInfoUIntItem("GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS", &vogl_context_info::get_max_transform_feedback_separate_attribs, this, info); m_diffableItems.push_back(pItem); this->appendChild(pItem); }
131
132 }