Therefore avoiding depending on Windows headers.
Furthermore, we'll eventually replace GL_XXX types names with more generic
ones when we support more than GL on the GUI.
#include <qmath.h>
static int
#include <qmath.h>
static int
-sizeForType(int glType)
-{
- switch(glType) {
- case GL_FLOAT:
- return sizeof(GLfloat);
- case GL_UNSIGNED_BYTE:
- return sizeof(GLubyte);
- case GL_BYTE:
- return sizeof(GLbyte);
- case GL_SHORT:
- return sizeof(GLshort);
- case GL_UNSIGNED_SHORT:
- return sizeof(GLushort);
- case GL_INT:
- return sizeof(GLint);
- case GL_UNSIGNED_INT:
- return sizeof(GLuint);
- case GL_DOUBLE:
- return sizeof(GLdouble);
+sizeForType(int type)
+{
+ switch(type) {
+ case DT_INT8:
+ case DT_UINT8:
+ return 1;
+ case DT_INT16:
+ case DT_UINT16:
+ return 2;
+ case DT_INT32:
+ case DT_UINT32:
+ return 4;
+ case DT_FLOAT:
+ return sizeof(float);
+ case DT_DOUBLE:
+ return sizeof(double);
VertexDataInterpreter::VertexDataInterpreter(QObject *parent)
: QObject(parent),
m_listWidget(0),
VertexDataInterpreter::VertexDataInterpreter(QObject *parent)
: QObject(parent),
m_listWidget(0),
m_stride(16),
m_components(4),
m_startingOffset(0)
m_stride(16),
m_components(4),
m_startingOffset(0)
QStringList lst;
switch(m_type) {
QStringList lst;
switch(m_type) {
- case GL_FLOAT:
- lst = convertData<float>(m_data, m_type, m_stride, m_components,
+ case DT_INT8:
+ lst = convertData<qint8>(m_data, m_type, m_stride, m_components,
m_startingOffset);
break;
m_startingOffset);
break;
lst = convertData<quint8>(m_data, m_type, m_stride, m_components,
m_startingOffset);
break;
lst = convertData<quint8>(m_data, m_type, m_stride, m_components,
m_startingOffset);
break;
- case GL_BYTE:
- lst = convertData<qint8>(m_data, m_type, m_stride, m_components,
- m_startingOffset);
- break;
- case GL_SHORT:
lst = convertData<qint16>(m_data, m_type, m_stride, m_components,
m_startingOffset);
break;
lst = convertData<qint16>(m_data, m_type, m_stride, m_components,
m_startingOffset);
break;
- case GL_UNSIGNED_SHORT:
lst = convertData<quint16>(m_data, m_type, m_stride, m_components,
m_startingOffset);
break;
lst = convertData<quint16>(m_data, m_type, m_stride, m_components,
m_startingOffset);
break;
- case GL_INT:
- lst = convertData<unsigned int>(m_data, m_type, m_stride, m_components,
- m_startingOffset);
+ case DT_INT32:
+ lst = convertData<qint32>(m_data, m_type, m_stride, m_components,
+ m_startingOffset);
+ break;
+ case DT_UINT32:
+ lst = convertData<quint32>(m_data, m_type, m_stride, m_components,
+ m_startingOffset);
- case GL_UNSIGNED_INT:
- lst = convertData<int>(m_data, m_type, m_stride, m_components,
- m_startingOffset);
+ case DT_FLOAT:
+ lst = convertData<float>(m_data, m_type, m_stride, m_components,
+ m_startingOffset);
lst = convertData<double>(m_data, m_type, m_stride, m_components,
m_startingOffset);
break;
lst = convertData<double>(m_data, m_type, m_stride, m_components,
m_startingOffset);
break;
void VertexDataInterpreter::setTypeFromString(const QString &str)
{
if (str == QLatin1String("GL_FLOAT")) {
void VertexDataInterpreter::setTypeFromString(const QString &str)
{
if (str == QLatin1String("GL_FLOAT")) {
} else if (str == QLatin1String("GL_INT")) {
} else if (str == QLatin1String("GL_INT")) {
} else if (str == QLatin1String("GL_UNSIGNED_INT")) {
} else if (str == QLatin1String("GL_UNSIGNED_INT")) {
- setType(GL_UNSIGNED_INT);
} else if (str == QLatin1String("GL_SHORT")) {
} else if (str == QLatin1String("GL_SHORT")) {
} else if (str == QLatin1String("GL_UNSIGNED_SHORT")) {
} else if (str == QLatin1String("GL_UNSIGNED_SHORT")) {
- setType(GL_UNSIGNED_SHORT);
} else if (str == QLatin1String("GL_BYTE")) {
} else if (str == QLatin1String("GL_BYTE")) {
} else if (str == QLatin1String("GL_UNSIGNED_BYTE")) {
} else if (str == QLatin1String("GL_UNSIGNED_BYTE")) {
- setType(GL_UNSIGNED_BYTE);
} else if (str == QLatin1String("GL_DOUBLE")) {
} else if (str == QLatin1String("GL_DOUBLE")) {
} else {
qDebug()<<"unknown vertex data type";
}
} else {
qDebug()<<"unknown vertex data type";
}
+enum DataType {
+ DT_INT8,
+ DT_UINT8,
+ DT_INT16,
+ DT_UINT16,
+ DT_INT32,
+ DT_UINT32,
+ DT_FLOAT,
+ DT_DOUBLE,
+};
+
class VertexDataInterpreter : public QObject
{
Q_OBJECT
class VertexDataInterpreter : public QObject
{
Q_OBJECT