]> git.tdb.fi Git - gldbg.git/blob - flavors/gl/source/arraystate.cpp
Add a command to show current vertex array state
[gldbg.git] / flavors / gl / source / arraystate.cpp
1 #include "arraystate.h"
2 #include "bufferstate.h"
3 #include "enums.h"
4 #include "strformat.h"
5
6 using namespace std;
7
8 ArrayState::ArrayState():
9         kind(0),
10         index(0),
11         enabled(false),
12         size(4),
13         type(GL_FLOAT),
14         normalized(false),
15         stride(0),
16         buffer(0),
17         pointer(0)
18 { }
19
20 void ArrayState::set(unsigned s, GLenum t, bool n, unsigned r, BufferState *b, long p)
21 {
22         size = s;
23         type = t;
24         stride = r;
25         normalized = n;
26         buffer = b;
27         pointer = p;
28
29         if(buffer)
30                 buffer->content.update(*this);
31 }
32
33 string ArrayState::describe() const
34 {
35         if(enabled)
36         {
37                 string descr = strformat("%d %s, stride %d", size, describe_enum(type, "DataType"), stride);
38                 if(buffer)
39                         descr += strformat(", buffer %d at %d", buffer->id, pointer);
40                 else
41                         descr += strformat(", at 0x%X", pointer);
42                 return descr;
43         }
44         else
45                 return "Disabled";
46 }