From 045fd49cbd6a37eef2113399cc4d18ce29613dfd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= <tomi.korpipaa@digia.com>
Date: Mon, 8 Dec 2014 09:31:55 +0200
Subject: [PATCH] Added namespace
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Change-Id: Ib1ada2b821c574333f726b7228c430876a49856a
Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
---
 src/abstractobject3d.cpp             |    4 +
 src/abstractobject3d_p.h             |    4 +
 src/activeinfo3d.cpp                 |    4 +
 src/activeinfo3d_p.h                 |    8 +-
 src/arrayutils_p.h                   |    4 +
 src/buffer3d.cpp                     |    4 +
 src/buffer3d_p.h                     |    4 +
 src/canvas3d.cpp                     |    4 +
 src/canvas3d_p.h                     |    4 +
 src/canvas3dcommon_p.h               |    3 +
 src/canvasglstatedump.cpp            |    4 +
 src/canvasglstatedump_p.h            |   12 +-
 src/canvasrendernode.cpp             |    4 +
 src/canvasrendernode_p.h             |    5 +
 src/context3d.cpp                    |   24 +-
 src/context3d_p.h                    |    6 +-
 src/contextattributes.cpp            |    4 +
 src/contextattributes_p.h            |    4 +
 src/contextextensions.cpp            |    4 +
 src/contextextensions_p.h            |    4 +
 src/enumtostringmap.cpp              |    7 +-
 src/enumtostringmap_p.h              |    4 +
 src/framebuffer3d.cpp                |    4 +
 src/framebuffer3d_p.h                |    4 +
 src/plugins.qmltypes                 | 1162 ++++++++++++++++++--------
 src/program3d.cpp                    |    3 +
 src/program3d_p.h                    |    4 +
 src/qcanvas3d_plugin.cpp             |    4 +-
 src/qcanvas3d_plugin.h               |    7 +-
 src/renderbuffer3d.cpp               |    4 +
 src/renderbuffer3d_p.h               |    4 +
 src/shader3d.cpp                     |    4 +
 src/shader3d_p.h                     |    4 +
 src/shaderprecisionformat.cpp        |    4 +
 src/shaderprecisionformat_p.h        |    4 +
 src/teximage3d.cpp                   |    3 +
 src/teximage3d_p.h                   |    4 +
 src/texture3d.cpp                    |    4 +
 src/texture3d_p.h                    |    4 +
 src/typedarray/arraybuffer.cpp       |    4 +
 src/typedarray/arraybuffer_p.h       |    5 +
 src/typedarray/arraybufferview.cpp   |    4 +
 src/typedarray/arraybufferview_p.h   |    4 +
 src/typedarray/float32array.cpp      |    4 +
 src/typedarray/float32array_p.h      |    4 +
 src/typedarray/float64array.cpp      |    3 +
 src/typedarray/float64array_p.h      |    4 +
 src/typedarray/int16array.cpp        |    4 +
 src/typedarray/int16array_p.h        |    4 +
 src/typedarray/int32array.cpp        |    3 +
 src/typedarray/int32array_p.h        |    4 +
 src/typedarray/int8array.cpp         |    4 +
 src/typedarray/int8array_p.h         |    4 +
 src/typedarray/typedarray.cpp        |    4 +
 src/typedarray/typedarray_p.h        |    4 +
 src/typedarray/typedarrayfactory.cpp |    3 +
 src/typedarray/typedarrayfactory_p.h |    5 +
 src/typedarray/uint16array.cpp       |    4 +
 src/typedarray/uint16array_p.h       |    4 +
 src/typedarray/uint32array.cpp       |    4 +
 src/typedarray/uint32array_p.h       |    4 +
 src/typedarray/uint8array.cpp        |    4 +
 src/typedarray/uint8array_p.h        |    4 +
 src/typedarray/uint8clampedarray.cpp |    4 +
 src/typedarray/uint8clampedarray_p.h |    4 +
 src/uniformlocation.cpp              |    4 +
 src/uniformlocation_p.h              |    4 +
 67 files changed, 1079 insertions(+), 384 deletions(-)

diff --git a/src/abstractobject3d.cpp b/src/abstractobject3d.cpp
index 6f1c87f..147db70 100644
--- a/src/abstractobject3d.cpp
+++ b/src/abstractobject3d.cpp
@@ -36,6 +36,8 @@
 
 #include "abstractobject3d_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \internal
  */
@@ -72,3 +74,5 @@ const QString &CanvasAbstractObject::name() const
 {
     return m_name;
 }
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/abstractobject3d_p.h b/src/abstractobject3d_p.h
index 0845adf..ff39836 100644
--- a/src/abstractobject3d_p.h
+++ b/src/abstractobject3d_p.h
@@ -47,9 +47,12 @@
 #ifndef ABSTRACTOBJECT3D_P_H
 #define ABSTRACTOBJECT3D_P_H
 
+#include "canvas3dcommon_p.h"
 #include <QObject>
 #include <QThread>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasAbstractObject : public QObject
 {
     Q_OBJECT
@@ -69,5 +72,6 @@ private:
     QString m_name;
 };
 
+QT_CANVAS3D_END_NAMESPACE
 
 #endif // ABSTRACTOBJECT3D_P_H
diff --git a/src/activeinfo3d.cpp b/src/activeinfo3d.cpp
index 188b000..d84cd54 100644
--- a/src/activeinfo3d.cpp
+++ b/src/activeinfo3d.cpp
@@ -36,6 +36,8 @@
 
 #include "activeinfo3d_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype ActiveInfo3D
  * \since QtCanvas3D 1.0
@@ -80,3 +82,5 @@ CanvasContext::glEnums CanvasActiveInfo::type() const
 {
     return m_type;
 }
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/activeinfo3d_p.h b/src/activeinfo3d_p.h
index 66ddd43..35271d0 100644
--- a/src/activeinfo3d_p.h
+++ b/src/activeinfo3d_p.h
@@ -47,15 +47,17 @@
 #ifndef CANVASACTIVEINFO_P_H
 #define CANVASACTIVEINFO_P_H
 
-#include <QObject>
 #include "context3d_p.h"
+#include <QObject>
+
+QT_CANVAS3D_BEGIN_NAMESPACE
 
 class CanvasActiveInfo : public QObject
 {
     Q_OBJECT
 
     Q_PROPERTY(int size READ size NOTIFY sizeChanged)
-    Q_PROPERTY(CanvasContext::glEnums type READ type NOTIFY typeChanged)
+    Q_PROPERTY(QtCanvas3D::CanvasContext::glEnums type READ type NOTIFY typeChanged)
     Q_PROPERTY(QString name READ name NOTIFY nameChanged)
 
 public:
@@ -77,4 +79,6 @@ private:
     QString m_name;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // CANVASACTIVEINFO_P_H
diff --git a/src/arrayutils_p.h b/src/arrayutils_p.h
index d15ce0c..b041f7a 100644
--- a/src/arrayutils_p.h
+++ b/src/arrayutils_p.h
@@ -58,6 +58,8 @@
 #include "typedarray/float64array_p.h"
 #include "typedarray/uint8clampedarray_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 // Contains static template functions used by the TypedArray classes.
 class ArrayUtils
 {
@@ -229,4 +231,6 @@ public:
     }
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // ARRAYUTILS_P_H
diff --git a/src/buffer3d.cpp b/src/buffer3d.cpp
index 7f18ece..671388b 100644
--- a/src/buffer3d.cpp
+++ b/src/buffer3d.cpp
@@ -40,6 +40,8 @@
 #include <QDebug>
 #include <QString>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype Buffer3D
  * \since QtCanvas3D 1.0
@@ -139,3 +141,5 @@ QDebug operator<<(QDebug dbg, const CanvasBuffer *buffer)
         dbg.nospace() << "Buffer3D("<< ((void*) buffer) <<")";
     return dbg.maybeSpace();
 }
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/buffer3d_p.h b/src/buffer3d_p.h
index 5f86652..e88782a 100644
--- a/src/buffer3d_p.h
+++ b/src/buffer3d_p.h
@@ -52,6 +52,8 @@
 
 #include <QOpenGLFunctions>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasBuffer : public CanvasAbstractObject, protected QOpenGLFunctions
 {
     Q_OBJECT
@@ -80,4 +82,6 @@ private:
     bindTarget m_bindTarget;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // BUFFER3D_P_H
diff --git a/src/canvas3d.cpp b/src/canvas3d.cpp
index 1d97655..acaeba0 100644
--- a/src/canvas3d.cpp
+++ b/src/canvas3d.cpp
@@ -51,6 +51,8 @@
 #include <QtQml/QQmlEngine>
 #include <QtQml/QQmlContext>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype Canvas3D
  * \since QtCanvas3D 1.0
@@ -681,3 +683,5 @@ void Canvas::renderNext()
     // Notify the render node of new texture
     emit textureReady(m_displayFbo->texture(), m_initialisedSize, m_devicePixelRatio);
 }
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/canvas3d_p.h b/src/canvas3d_p.h
index b5179d3..8956db7 100644
--- a/src/canvas3d_p.h
+++ b/src/canvas3d_p.h
@@ -55,6 +55,8 @@
 
 class QOffscreenSurface;
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class QT_CANVAS3D_EXPORT Canvas : public QQuickItem, QOpenGLFunctions
 {
     Q_OBJECT
@@ -140,5 +142,7 @@ private:
     QOffscreenSurface *m_offscreenSurface;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // CANVAS3D_P_H
 
diff --git a/src/canvas3dcommon_p.h b/src/canvas3dcommon_p.h
index 4516de1..568517a 100644
--- a/src/canvas3dcommon_p.h
+++ b/src/canvas3dcommon_p.h
@@ -53,4 +53,7 @@
 
 #define QT_CANVAS3D_GL_STATE_DUMP_EXT_NAME "QTCANVAS3D_gl_state_dump"
 
+#define QT_CANVAS3D_BEGIN_NAMESPACE namespace QtCanvas3D {
+#define QT_CANVAS3D_END_NAMESPACE }
+
 #endif // CANVAS3DCOMMON_P_H
diff --git a/src/canvasglstatedump.cpp b/src/canvasglstatedump.cpp
index 7f7c9aa..dd23557 100644
--- a/src/canvasglstatedump.cpp
+++ b/src/canvasglstatedump.cpp
@@ -42,6 +42,8 @@
 
 #define BOOL_TO_STR(a) a ? "true" : "false"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
    \qmltype GLStateDumpExt
    \since QtCanvas3D 1.0
@@ -421,3 +423,5 @@ QString CanvasGLStateDump::getGLStateDump(CanvasGLStateDump::stateDumpEnums opti
 
     return stateDumpStr;
 }
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/canvasglstatedump_p.h b/src/canvasglstatedump_p.h
index 70110a7..503d546 100644
--- a/src/canvasglstatedump_p.h
+++ b/src/canvasglstatedump_p.h
@@ -52,6 +52,8 @@
 #include <QObject>
 #include <QtGui/QOpenGLFunctions>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 #define DUMP_ENUM_AS_PROPERTY(A,B,C) Q_PROPERTY(A::B C READ C ## _read); inline A::B C ## _read() { return A::C; }
 
 class EnumToStringMap;
@@ -70,10 +72,10 @@ public:
         DUMP_FULL                              = 0x03
     };
 
-    DUMP_ENUM_AS_PROPERTY(CanvasGLStateDump,stateDumpEnums,DUMP_BASIC_ONLY)
-    DUMP_ENUM_AS_PROPERTY(CanvasGLStateDump,stateDumpEnums,DUMP_VERTEX_ATTRIB_ARRAYS_BIT)
-    DUMP_ENUM_AS_PROPERTY(CanvasGLStateDump,stateDumpEnums,DUMP_VERTEX_ATTRIB_ARRAYS_BUFFERS_BIT)
-    DUMP_ENUM_AS_PROPERTY(CanvasGLStateDump,stateDumpEnums,DUMP_FULL)
+    DUMP_ENUM_AS_PROPERTY(QtCanvas3D::CanvasGLStateDump,stateDumpEnums,DUMP_BASIC_ONLY)
+    DUMP_ENUM_AS_PROPERTY(QtCanvas3D::CanvasGLStateDump,stateDumpEnums,DUMP_VERTEX_ATTRIB_ARRAYS_BIT)
+    DUMP_ENUM_AS_PROPERTY(QtCanvas3D::CanvasGLStateDump,stateDumpEnums,DUMP_VERTEX_ATTRIB_ARRAYS_BUFFERS_BIT)
+    DUMP_ENUM_AS_PROPERTY(QtCanvas3D::CanvasGLStateDump,stateDumpEnums,DUMP_FULL)
 
     CanvasGLStateDump(QOpenGLContext *context, QObject *parent = 0);
     ~CanvasGLStateDump();
@@ -88,4 +90,6 @@ private:
     bool m_isOpenGLES2;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // CANVASGLSTATEDUMP_P_H
diff --git a/src/canvasrendernode.cpp b/src/canvasrendernode.cpp
index c05fc8a..dbe3f81 100644
--- a/src/canvasrendernode.cpp
+++ b/src/canvasrendernode.cpp
@@ -39,6 +39,8 @@
 #include <QtGui/QOpenGLContext>
 #include <QtGui/QOpenGLFramebufferObject>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 CanvasRenderNode::CanvasRenderNode(Canvas *canvas, QQuickWindow *window) :
     QObject(),
     QSGSimpleTextureNode(),
@@ -99,3 +101,5 @@ void CanvasRenderNode::prepareNode()
         if (m_canvas->logAllCalls()) qDebug() << "CanvasRenderNode::" << __FUNCTION__ << " showing previous texture";
     }
 }
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/canvasrendernode_p.h b/src/canvasrendernode_p.h
index 0c529b9..7448107 100644
--- a/src/canvasrendernode_p.h
+++ b/src/canvasrendernode_p.h
@@ -47,10 +47,13 @@
 #ifndef CANVASRENDERNODE_P_H
 #define CANVASRENDERNODE_P_H
 
+#include "canvas3dcommon_p.h"
 #include <QtQuick/QSGSimpleTextureNode>
 #include <QtQuick/QQuickWindow>
 #include <QtCore/QMutex>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class Canvas;
 
 class CanvasRenderNode : public QObject, public QSGSimpleTextureNode
@@ -78,4 +81,6 @@ private:
     QQuickWindow *m_window;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // CANVASRENDERNODE_P_H
diff --git a/src/context3d.cpp b/src/context3d.cpp
index 5fe078c..5fc0ffc 100644
--- a/src/context3d.cpp
+++ b/src/context3d.cpp
@@ -64,6 +64,8 @@
 
 #include <QtGui/QOpenGLShader>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype Context3D
  * \since QtCanvas3D 1.0
@@ -551,7 +553,7 @@ bool CanvasContext::isTexture(QObject *anyObject)
         return false;
 
     QString className = QString(anyObject->metaObject()->className());
-    if (className != "CanvasTexture")
+    if (className != "QtCanvas3D::CanvasTexture")
         return false;
 
     CanvasTexture *texture = static_cast<CanvasTexture *>(anyObject);
@@ -824,7 +826,7 @@ void CanvasContext::texImage2D(glEnums target, int level, glEnums internalformat
     uchar *unpackedData = 0;
     switch (type) {
     case UNSIGNED_BYTE: {
-        if (className != "CanvasUint8Array") {
+        if (className != "QtCanvas3D::CanvasUint8Array") {
             if (m_logAllErrors) qDebug() << "Context3D::" << __FUNCTION__
                                          << ":INVALID_OPERATION Expected Uint8Array, received "
                                          << pixels->metaObject()->className();
@@ -869,7 +871,7 @@ void CanvasContext::texImage2D(glEnums target, int level, glEnums internalformat
     case UNSIGNED_SHORT_4_4_4_4:
     case UNSIGNED_SHORT_5_6_5:
     case UNSIGNED_SHORT_5_5_5_1: {
-        if (className != "CanvasUint16Array") {
+        if (className != "QtCanvas3D::CanvasUint16Array") {
             if (m_logAllErrors) qDebug() << "Context3D::"
                                          << __FUNCTION__
                                          << ":INVALID_OPERATION Expected Uint16Array, received "
@@ -967,7 +969,7 @@ void CanvasContext::texSubImage2D(glEnums target, int level,
     int bytesPerPixel = 0;
     switch (type) {
     case UNSIGNED_BYTE: {
-        if (className != "CanvasUint8Array") {
+        if (className != "QtCanvas3D::CanvasUint8Array") {
             if (m_logAllErrors) qDebug() << "Context3D::" << __FUNCTION__
                                          << ":INVALID_OPERATION Expected Uint8Array, received "
                                          << pixels->metaObject()->className();
@@ -1010,7 +1012,7 @@ void CanvasContext::texSubImage2D(glEnums target, int level,
     case UNSIGNED_SHORT_4_4_4_4:
     case UNSIGNED_SHORT_5_6_5:
     case UNSIGNED_SHORT_5_5_5_1: {
-        if (className != "CanvasUint16Array") {
+        if (className != "QtCanvas3D::CanvasUint16Array") {
             if (m_logAllErrors) qDebug() << "Context3D::" << __FUNCTION__
                                          << ":INVALID_OPERATION Expected Uint16Array, received "
                                          << pixels->metaObject()->className();
@@ -1573,7 +1575,7 @@ bool CanvasContext::isFramebuffer(QObject *anyObject)
         return false;
 
     QString className = QString(anyObject->metaObject()->className());
-    if (className != "CanvasFrameBuffer")
+    if (className != "QtCanvas3D::CanvasFrameBuffer")
         return false;
 
     CanvasFrameBuffer *fbo = static_cast<CanvasFrameBuffer *>(anyObject);
@@ -1708,7 +1710,7 @@ bool CanvasContext::isRenderbuffer(QObject *anyObject)
         return false;
 
     QString className = QString(anyObject->metaObject()->className());
-    if (className != "CanvasRenderBuffer")
+    if (className != "QtCanvas3D::CanvasRenderBuffer")
         return false;
 
     CanvasRenderBuffer *rbo = static_cast<CanvasRenderBuffer *>(anyObject);
@@ -1797,7 +1799,7 @@ bool CanvasContext::isProgram(QObject *anyObject)
         return false;
 
     QString className = QString(anyObject->metaObject()->className());
-    if (className != "CanvasProgram")
+    if (className != "QtCanvas3D::CanvasProgram")
         return false;
 
     CanvasProgram *program = static_cast<CanvasProgram *>(anyObject);
@@ -2316,7 +2318,7 @@ bool CanvasContext::isShader(QObject *anyObject)
         return false;
 
     QString className = QString(anyObject->metaObject()->className());
-    if (className != "CanvasShader")
+    if (className != "QtCanvas3D::CanvasShader")
         return false;
 
     CanvasShader *shader = static_cast<CanvasShader *>(anyObject);
@@ -3707,7 +3709,7 @@ bool CanvasContext::isBuffer(QObject *anyObject)
         return false;
 
     QString className = QString(anyObject->metaObject()->className());
-    if (className != "CanvasBuffer")
+    if (className != "QtCanvas3D::CanvasBuffer")
         return false;
 
     CanvasBuffer *buffer = static_cast<CanvasBuffer *>(anyObject);
@@ -5076,3 +5078,5 @@ QVariant CanvasContext::getExtension(const QString &name)
 
     return QVariant(QVariant::Int);
 }
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/context3d_p.h b/src/context3d_p.h
index 411dc3d..10fd077 100644
--- a/src/context3d_p.h
+++ b/src/context3d_p.h
@@ -63,7 +63,9 @@
 #undef NO_ERROR
 #endif
 
-#define ENUM_AS_PROPERTY(A) Q_PROPERTY(CanvasContext::glEnums A READ A ## _read); inline CanvasContext::glEnums A ## _read() { return CanvasContext::A; }
+QT_CANVAS3D_BEGIN_NAMESPACE
+
+#define ENUM_AS_PROPERTY(A) Q_PROPERTY(QtCanvas3D::CanvasContext::glEnums A READ A ## _read); inline QtCanvas3D::CanvasContext::glEnums A ## _read() { return CanvasContext::A; }
 
 class Canvas;
 class CanvasActiveInfo;
@@ -1235,4 +1237,6 @@ private:
     CanvasGLStateDump *m_stateDumpExt;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // CONTEXT3D_P_H
diff --git a/src/contextattributes.cpp b/src/contextattributes.cpp
index e2f4ffa..c7df9b6 100644
--- a/src/contextattributes.cpp
+++ b/src/contextattributes.cpp
@@ -39,6 +39,8 @@
 #include <QVariantMap>
 #include <QDebug>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype ContextAttributes
  * \since QtCanvas3D 1.0
@@ -280,3 +282,5 @@ QDebug operator<<(QDebug dbg, const CanvasContextAttributes &attribs)
                      "\n    failIfMajorPerformanceCaveat:" << attribs.m_failIfMajorPerformanceCaveat << ")";
     return dbg.maybeSpace();
 }
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/contextattributes_p.h b/src/contextattributes_p.h
index df1a8df..6d3f701 100644
--- a/src/contextattributes_p.h
+++ b/src/contextattributes_p.h
@@ -51,6 +51,8 @@
 
 #include <QObject>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasContextAttributes : public CanvasAbstractObject
 {
     Q_OBJECT
@@ -111,4 +113,6 @@ private:
     bool m_failIfMajorPerformanceCaveat;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // QCONTEXTATTRIBUTES_P_H
diff --git a/src/contextextensions.cpp b/src/contextextensions.cpp
index 9ee7912..3de546e 100644
--- a/src/contextextensions.cpp
+++ b/src/contextextensions.cpp
@@ -36,7 +36,11 @@
 
 #include "contextextensions_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 WEBGL_debug_renderer_info::WEBGL_debug_renderer_info(QObject *parent) :
     QObject(parent)
 {
 }
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/contextextensions_p.h b/src/contextextensions_p.h
index 3006535..895f806 100644
--- a/src/contextextensions_p.h
+++ b/src/contextextensions_p.h
@@ -50,6 +50,8 @@
 #include "context3d_p.h"
 #include "canvas3dcommon_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class WEBGL_debug_renderer_info : public QObject
 {
     Q_OBJECT
@@ -61,4 +63,6 @@ class WEBGL_debug_renderer_info : public QObject
         explicit WEBGL_debug_renderer_info(QObject *parent = 0);
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // CONTEXTEXTENSIONS_P_H
diff --git a/src/enumtostringmap.cpp b/src/enumtostringmap.cpp
index c9605f0..92a4dd0 100644
--- a/src/enumtostringmap.cpp
+++ b/src/enumtostringmap.cpp
@@ -36,6 +36,8 @@
 
 #include "enumtostringmap_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 static EnumToStringMap *theInstance = 0;
 static unsigned int theInstanceCount = 0;
 
@@ -69,8 +71,8 @@ EnumToStringMap::EnumToStringMap() :
     m_map[CanvasContext::STENCIL_BUFFER_BIT] = "STENCIL_BUFFER_BIT";
     m_map[CanvasContext::COLOR_BUFFER_BIT] = "COLOR_BUFFER_BIT";
 
-    m_map[(CanvasContext::DEPTH_AND_COLOR_BUFFER_BIT )] = "DEPTH_BUFFER_BIT | COLOR_BUFFER_BIT";
-    m_map[(CanvasContext::DEPTH_AND_STENCIL_AND_COLOR_BUFFER_BIT )] = "DEPTH_BUFFER_BIT | STENCIL_BUFFER_BIT | COLOR_BUFFER_BIT";
+    m_map[(CanvasContext::DEPTH_AND_COLOR_BUFFER_BIT)] = "DEPTH_BUFFER_BIT | COLOR_BUFFER_BIT";
+    m_map[(CanvasContext::DEPTH_AND_STENCIL_AND_COLOR_BUFFER_BIT)] = "DEPTH_BUFFER_BIT | STENCIL_BUFFER_BIT | COLOR_BUFFER_BIT";
     m_map[CanvasContext::STENCIL_BUFFER_BIT] = "STENCIL_BUFFER_BIT";
     m_map[CanvasContext::COLOR_BUFFER_BIT] = "COLOR_BUFFER_BIT";
 
@@ -424,3 +426,4 @@ QString EnumToStringMap::lookUp(const GLuint value) const
     return lookUp((CanvasContext::glEnums)value);
 }
 
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/enumtostringmap_p.h b/src/enumtostringmap_p.h
index 107a9b9..1021c28 100644
--- a/src/enumtostringmap_p.h
+++ b/src/enumtostringmap_p.h
@@ -51,6 +51,8 @@
 
 #include <QMap>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class EnumToStringMap
 {
 public:
@@ -65,4 +67,6 @@ private:
     QString m_unknown;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // ENUMTOSTRINGMAP_P_H
diff --git a/src/framebuffer3d.cpp b/src/framebuffer3d.cpp
index aa64300..3a99c69 100644
--- a/src/framebuffer3d.cpp
+++ b/src/framebuffer3d.cpp
@@ -36,6 +36,8 @@
 
 #include "framebuffer3d_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype FrameBuffer3D
  * \since QtCanvas3D 1.0
@@ -103,3 +105,5 @@ QDebug operator<<(QDebug dbg, const CanvasFrameBuffer *buffer)
         dbg.nospace() << "FrameBuffer3D("<< ((void*) buffer) <<")";
     return dbg.maybeSpace();
 }
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/framebuffer3d_p.h b/src/framebuffer3d_p.h
index 2042338..0dc3828 100644
--- a/src/framebuffer3d_p.h
+++ b/src/framebuffer3d_p.h
@@ -52,6 +52,8 @@
 #include <QOpenGLFunctions>
 #include <QDebug>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasFrameBuffer : public CanvasAbstractObject, protected QOpenGLFunctions
 {
     Q_OBJECT
@@ -70,4 +72,6 @@ private:
     GLuint m_framebufferId;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // FRAMEBUFFER3D_P_H
diff --git a/src/plugins.qmltypes b/src/plugins.qmltypes
index e96591e..953e233 100644
--- a/src/plugins.qmltypes
+++ b/src/plugins.qmltypes
@@ -8,7 +8,7 @@ import QtQuick.tooling 1.1
 
 Module {
     Component {
-        name: "Canvas"
+        name: "QtCanvas3D::Canvas"
         defaultProperty: "data"
         prototype: "QQuickItem"
         exports: ["QtCanvas3D/Canvas3D 1.0"]
@@ -62,7 +62,7 @@ Module {
         }
     }
     Component {
-        name: "CanvasAbstractObject"
+        name: "QtCanvas3D::CanvasAbstractObject"
         prototype: "QObject"
         Property { name: "name"; type: "string" }
         Signal {
@@ -71,13 +71,13 @@ Module {
         }
     }
     Component {
-        name: "CanvasActiveInfo"
+        name: "QtCanvas3D::CanvasActiveInfo"
         prototype: "QObject"
         exports: ["QtCanvas3D/ActiveInfo3D 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
         Property { name: "size"; type: "int"; isReadonly: true }
-        Property { name: "type"; type: "CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "type"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
         Property { name: "name"; type: "string"; isReadonly: true }
         Signal {
             name: "sizeChanged"
@@ -93,7 +93,7 @@ Module {
         }
     }
     Component {
-        name: "CanvasArrayBuffer"
+        name: "QtCanvas3D::CanvasArrayBuffer"
         prototype: "QObject"
         exports: ["QtCanvas3D/ArrayBuffer 1.0"]
         isCreatable: false
@@ -121,8 +121,8 @@ Module {
         }
     }
     Component {
-        name: "CanvasArrayBufferView"
-        prototype: "CanvasAbstractObject"
+        name: "QtCanvas3D::CanvasArrayBufferView"
+        prototype: "QtCanvas3D::CanvasAbstractObject"
         exports: ["QtCanvas3D/ArrayBufferView 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
@@ -143,15 +143,15 @@ Module {
         }
     }
     Component {
-        name: "CanvasBuffer"
-        prototype: "CanvasAbstractObject"
+        name: "QtCanvas3D::CanvasBuffer"
+        prototype: "QtCanvas3D::CanvasAbstractObject"
         exports: ["QtCanvas3D/Buffer3D 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
     }
     Component {
-        name: "CanvasContext"
-        prototype: "CanvasAbstractObject"
+        name: "QtCanvas3D::CanvasContext"
+        prototype: "QtCanvas3D::CanvasAbstractObject"
         exports: ["QtCanvas3D/Context3D 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
@@ -462,421 +462,857 @@ Module {
         Property { name: "canvas"; type: "Canvas"; isReadonly: true; isPointer: true }
         Property { name: "drawingBufferWidth"; type: "uint"; isReadonly: true }
         Property { name: "drawingBufferHeight"; type: "uint"; isReadonly: true }
-        Property { name: "DEPTH_BUFFER_BIT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STENCIL_BUFFER_BIT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "COLOR_BUFFER_BIT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "POINTS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "LINES"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "LINE_LOOP"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "LINE_STRIP"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TRIANGLES"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TRIANGLE_STRIP"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TRIANGLE_FAN"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ZERO"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ONE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "SRC_COLOR"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ONE_MINUS_SRC_COLOR"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "SRC_ALPHA"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ONE_MINUS_SRC_ALPHA"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "DST_ALPHA"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ONE_MINUS_DST_ALPHA"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "DST_COLOR"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ONE_MINUS_DST_COLOR"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "SRC_ALPHA_SATURATE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "FUNC_ADD"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "BLEND_EQUATION"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "BLEND_EQUATION_RGB"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "BLEND_EQUATION_ALPHA"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "FUNC_SUBTRACT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "FUNC_REVERSE_SUBTRACT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "BLEND_DST_RGB"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "BLEND_SRC_RGB"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "BLEND_DST_ALPHA"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "BLEND_SRC_ALPHA"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "CONSTANT_COLOR"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ONE_MINUS_CONSTANT_COLOR"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "CONSTANT_ALPHA"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ONE_MINUS_CONSTANT_ALPHA"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "BLEND_COLOR"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ARRAY_BUFFER"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ELEMENT_ARRAY_BUFFER"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ARRAY_BUFFER_BINDING"; type: "CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "DEPTH_BUFFER_BIT"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "STENCIL_BUFFER_BIT"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "COLOR_BUFFER_BIT"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "POINTS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "LINES"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "LINE_LOOP"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "LINE_STRIP"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TRIANGLES"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "TRIANGLE_STRIP"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "TRIANGLE_FAN"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "ZERO"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "ONE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "SRC_COLOR"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "ONE_MINUS_SRC_COLOR"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "SRC_ALPHA"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "ONE_MINUS_SRC_ALPHA"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "DST_ALPHA"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "ONE_MINUS_DST_ALPHA"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "DST_COLOR"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "ONE_MINUS_DST_COLOR"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "SRC_ALPHA_SATURATE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "FUNC_ADD"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "BLEND_EQUATION"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "BLEND_EQUATION_RGB"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "BLEND_EQUATION_ALPHA"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "FUNC_SUBTRACT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "FUNC_REVERSE_SUBTRACT"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "BLEND_DST_RGB"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "BLEND_SRC_RGB"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "BLEND_DST_ALPHA"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "BLEND_SRC_ALPHA"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "CONSTANT_COLOR"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "ONE_MINUS_CONSTANT_COLOR"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "CONSTANT_ALPHA"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "ONE_MINUS_CONSTANT_ALPHA"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "BLEND_COLOR"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "ARRAY_BUFFER"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "ELEMENT_ARRAY_BUFFER"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "ARRAY_BUFFER_BINDING"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
         Property {
             name: "ELEMENT_ARRAY_BUFFER_BINDING"
-            type: "CanvasContext::glEnums"
-            isReadonly: true
-        }
-        Property { name: "STREAM_DRAW"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STATIC_DRAW"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "DYNAMIC_DRAW"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "BUFFER_SIZE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "BUFFER_USAGE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "CURRENT_VERTEX_ATTRIB"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "FRONT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "BACK"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "FRONT_AND_BACK"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "CULL_FACE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "BLEND"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "DITHER"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STENCIL_TEST"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "DEPTH_TEST"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "SCISSOR_TEST"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "POLYGON_OFFSET_FILL"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "SAMPLE_ALPHA_TO_COVERAGE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "SAMPLE_COVERAGE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "NO_ERROR"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "INVALID_ENUM"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "INVALID_VALUE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "INVALID_OPERATION"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "OUT_OF_MEMORY"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "CW"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "CCW"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "LINE_WIDTH"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ALIASED_POINT_SIZE_RANGE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ALIASED_LINE_WIDTH_RANGE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "CULL_FACE_MODE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "FRONT_FACE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "DEPTH_RANGE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "DEPTH_WRITEMASK"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "DEPTH_CLEAR_VALUE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "DEPTH_FUNC"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STENCIL_CLEAR_VALUE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STENCIL_FUNC"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STENCIL_FAIL"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STENCIL_PASS_DEPTH_FAIL"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STENCIL_PASS_DEPTH_PASS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STENCIL_REF"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STENCIL_VALUE_MASK"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STENCIL_WRITEMASK"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STENCIL_BACK_FUNC"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STENCIL_BACK_FAIL"; type: "CanvasContext::glEnums"; isReadonly: true }
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "STREAM_DRAW"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "STATIC_DRAW"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "DYNAMIC_DRAW"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "BUFFER_SIZE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "BUFFER_USAGE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "CURRENT_VERTEX_ATTRIB"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "FRONT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "BACK"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "FRONT_AND_BACK"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "CULL_FACE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "BLEND"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "DITHER"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "STENCIL_TEST"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "DEPTH_TEST"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "SCISSOR_TEST"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "POLYGON_OFFSET_FILL"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "SAMPLE_ALPHA_TO_COVERAGE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "SAMPLE_COVERAGE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "NO_ERROR"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "INVALID_ENUM"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "INVALID_VALUE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "INVALID_OPERATION"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "OUT_OF_MEMORY"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "CW"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "CCW"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "LINE_WIDTH"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "ALIASED_POINT_SIZE_RANGE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "ALIASED_LINE_WIDTH_RANGE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "CULL_FACE_MODE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "FRONT_FACE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "DEPTH_RANGE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "DEPTH_WRITEMASK"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "DEPTH_CLEAR_VALUE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "DEPTH_FUNC"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "STENCIL_CLEAR_VALUE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "STENCIL_FUNC"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "STENCIL_FAIL"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "STENCIL_PASS_DEPTH_FAIL"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "STENCIL_PASS_DEPTH_PASS"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "STENCIL_REF"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "STENCIL_VALUE_MASK"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "STENCIL_WRITEMASK"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "STENCIL_BACK_FUNC"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "STENCIL_BACK_FAIL"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
         Property {
             name: "STENCIL_BACK_PASS_DEPTH_FAIL"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
         Property {
             name: "STENCIL_BACK_PASS_DEPTH_PASS"
-            type: "CanvasContext::glEnums"
-            isReadonly: true
-        }
-        Property { name: "STENCIL_BACK_REF"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STENCIL_BACK_VALUE_MASK"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STENCIL_BACK_WRITEMASK"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "VIEWPORT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "SCISSOR_BOX"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "COLOR_CLEAR_VALUE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "COLOR_WRITEMASK"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "UNPACK_ALIGNMENT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "PACK_ALIGNMENT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "MAX_TEXTURE_SIZE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "MAX_VIEWPORT_DIMS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "SUBPIXEL_BITS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "RED_BITS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "GREEN_BITS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "BLUE_BITS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ALPHA_BITS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "DEPTH_BITS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STENCIL_BITS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "POLYGON_OFFSET_UNITS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "POLYGON_OFFSET_FACTOR"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE_BINDING_2D"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "SAMPLE_BUFFERS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "SAMPLES"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "SAMPLE_COVERAGE_VALUE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "SAMPLE_COVERAGE_INVERT"; type: "CanvasContext::glEnums"; isReadonly: true }
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "STENCIL_BACK_REF"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "STENCIL_BACK_VALUE_MASK"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "STENCIL_BACK_WRITEMASK"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "VIEWPORT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "SCISSOR_BOX"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "COLOR_CLEAR_VALUE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "COLOR_WRITEMASK"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "UNPACK_ALIGNMENT"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "PACK_ALIGNMENT"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "MAX_TEXTURE_SIZE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "MAX_VIEWPORT_DIMS"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "SUBPIXEL_BITS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "RED_BITS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "GREEN_BITS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "BLUE_BITS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "ALPHA_BITS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "DEPTH_BITS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "STENCIL_BITS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "POLYGON_OFFSET_UNITS"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "POLYGON_OFFSET_FACTOR"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "TEXTURE_BINDING_2D"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "SAMPLE_BUFFERS"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "SAMPLES"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "SAMPLE_COVERAGE_VALUE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "SAMPLE_COVERAGE_INVERT"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
         Property {
             name: "COMPRESSED_TEXTURE_FORMATS"
-            type: "CanvasContext::glEnums"
-            isReadonly: true
-        }
-        Property { name: "DONT_CARE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "FASTEST"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "NICEST"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "GENERATE_MIPMAP_HINT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "BYTE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "UNSIGNED_BYTE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "SHORT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "UNSIGNED_SHORT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "INT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "UNSIGNED_INT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "FLOAT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "DEPTH_COMPONENT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ALPHA"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "RGB"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "RGBA"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "LUMINANCE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "LUMINANCE_ALPHA"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "UNSIGNED_SHORT_4_4_4_4"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "UNSIGNED_SHORT_5_5_5_1"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "UNSIGNED_SHORT_5_6_5"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "FRAGMENT_SHADER"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "VERTEX_SHADER"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "MAX_VERTEX_ATTRIBS"; type: "CanvasContext::glEnums"; isReadonly: true }
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "DONT_CARE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "FASTEST"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "NICEST"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "GENERATE_MIPMAP_HINT"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "BYTE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "UNSIGNED_BYTE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "SHORT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "UNSIGNED_SHORT"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "INT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "UNSIGNED_INT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "FLOAT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "DEPTH_COMPONENT"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "ALPHA"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "RGB"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "RGBA"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "LUMINANCE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "LUMINANCE_ALPHA"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "UNSIGNED_SHORT_4_4_4_4"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "UNSIGNED_SHORT_5_5_5_1"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "UNSIGNED_SHORT_5_6_5"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "FRAGMENT_SHADER"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "VERTEX_SHADER"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "MAX_VERTEX_ATTRIBS"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
         Property {
             name: "MAX_VERTEX_UNIFORM_VECTORS"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "MAX_VARYING_VECTORS"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
-        Property { name: "MAX_VARYING_VECTORS"; type: "CanvasContext::glEnums"; isReadonly: true }
         Property {
             name: "MAX_COMBINED_TEXTURE_IMAGE_UNITS"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
         Property {
             name: "MAX_VERTEX_TEXTURE_IMAGE_UNITS"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "MAX_TEXTURE_IMAGE_UNITS"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
-        Property { name: "MAX_TEXTURE_IMAGE_UNITS"; type: "CanvasContext::glEnums"; isReadonly: true }
         Property {
             name: "MAX_FRAGMENT_UNIFORM_VECTORS"
-            type: "CanvasContext::glEnums"
-            isReadonly: true
-        }
-        Property { name: "SHADER_TYPE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "DELETE_STATUS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "LINK_STATUS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "VALIDATE_STATUS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ATTACHED_SHADERS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ACTIVE_UNIFORMS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ACTIVE_ATTRIBUTES"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "SHADING_LANGUAGE_VERSION"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "CURRENT_PROGRAM"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "NEVER"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "LESS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "EQUAL"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "LEQUAL"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "GREATER"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "NOTEQUAL"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "GEQUAL"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ALWAYS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "KEEP"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "REPLACE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "INCR"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "DECR"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "INVERT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "INCR_WRAP"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "DECR_WRAP"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "VENDOR"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "RENDERER"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "VERSION"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "NEAREST"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "LINEAR"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "NEAREST_MIPMAP_NEAREST"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "LINEAR_MIPMAP_NEAREST"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "NEAREST_MIPMAP_LINEAR"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "LINEAR_MIPMAP_LINEAR"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE_MAG_FILTER"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE_MIN_FILTER"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE_WRAP_S"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE_WRAP_T"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE_2D"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE_CUBE_MAP"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE_BINDING_CUBE_MAP"; type: "CanvasContext::glEnums"; isReadonly: true }
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "SHADER_TYPE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "DELETE_STATUS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "LINK_STATUS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "VALIDATE_STATUS"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "ATTACHED_SHADERS"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "ACTIVE_UNIFORMS"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "ACTIVE_ATTRIBUTES"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "SHADING_LANGUAGE_VERSION"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "CURRENT_PROGRAM"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "NEVER"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "LESS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "EQUAL"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "LEQUAL"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "GREATER"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "NOTEQUAL"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "GEQUAL"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "ALWAYS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "KEEP"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "REPLACE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "INCR"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "DECR"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "INVERT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "INCR_WRAP"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "DECR_WRAP"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "VENDOR"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "RENDERER"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "VERSION"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "NEAREST"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "LINEAR"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "NEAREST_MIPMAP_NEAREST"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "LINEAR_MIPMAP_NEAREST"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "NEAREST_MIPMAP_LINEAR"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "LINEAR_MIPMAP_LINEAR"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "TEXTURE_MAG_FILTER"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "TEXTURE_MIN_FILTER"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "TEXTURE_WRAP_S"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "TEXTURE_WRAP_T"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "TEXTURE_2D"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "TEXTURE_CUBE_MAP"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "TEXTURE_BINDING_CUBE_MAP"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
         Property {
             name: "TEXTURE_CUBE_MAP_POSITIVE_X"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
         Property {
             name: "TEXTURE_CUBE_MAP_NEGATIVE_X"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
         Property {
             name: "TEXTURE_CUBE_MAP_POSITIVE_Y"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
         Property {
             name: "TEXTURE_CUBE_MAP_NEGATIVE_Y"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
         Property {
             name: "TEXTURE_CUBE_MAP_POSITIVE_Z"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
         Property {
             name: "TEXTURE_CUBE_MAP_NEGATIVE_Z"
-            type: "CanvasContext::glEnums"
-            isReadonly: true
-        }
-        Property { name: "MAX_CUBE_MAP_TEXTURE_SIZE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE0"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE1"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE2"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE3"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE4"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE5"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE6"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE7"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE8"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE9"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE10"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE11"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE12"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE13"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE14"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE15"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE16"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE17"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE18"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE19"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE20"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE21"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE22"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE23"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE24"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE25"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE26"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE27"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE28"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE29"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE30"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "TEXTURE31"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "ACTIVE_TEXTURE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "REPEAT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "CLAMP_TO_EDGE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "MIRRORED_REPEAT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "FLOAT_VEC2"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "FLOAT_VEC3"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "FLOAT_VEC4"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "INT_VEC2"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "INT_VEC3"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "INT_VEC4"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "BOOL"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "BOOL_VEC2"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "BOOL_VEC3"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "BOOL_VEC4"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "FLOAT_MAT2"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "FLOAT_MAT3"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "FLOAT_MAT4"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "SAMPLER_2D"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "SAMPLER_CUBE"; type: "CanvasContext::glEnums"; isReadonly: true }
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "MAX_CUBE_MAP_TEXTURE_SIZE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "TEXTURE0"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE1"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE2"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE3"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE4"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE5"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE6"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE7"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE8"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE9"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE10"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE11"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE12"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE13"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE14"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE15"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE16"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE17"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE18"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE19"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE20"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE21"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE22"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE23"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE24"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE25"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE26"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE27"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE28"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE29"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE30"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "TEXTURE31"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "ACTIVE_TEXTURE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "REPEAT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "CLAMP_TO_EDGE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "MIRRORED_REPEAT"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "FLOAT_VEC2"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "FLOAT_VEC3"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "FLOAT_VEC4"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "INT_VEC2"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "INT_VEC3"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "INT_VEC4"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "BOOL"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "BOOL_VEC2"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "BOOL_VEC3"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "BOOL_VEC4"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "FLOAT_MAT2"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "FLOAT_MAT3"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "FLOAT_MAT4"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "SAMPLER_2D"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "SAMPLER_CUBE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
         Property {
             name: "VERTEX_ATTRIB_ARRAY_ENABLED"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "VERTEX_ATTRIB_ARRAY_SIZE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
-        Property { name: "VERTEX_ATTRIB_ARRAY_SIZE"; type: "CanvasContext::glEnums"; isReadonly: true }
         Property {
             name: "VERTEX_ATTRIB_ARRAY_STRIDE"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "VERTEX_ATTRIB_ARRAY_TYPE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
-        Property { name: "VERTEX_ATTRIB_ARRAY_TYPE"; type: "CanvasContext::glEnums"; isReadonly: true }
         Property {
             name: "VERTEX_ATTRIB_ARRAY_NORMALIZED"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
         Property {
             name: "VERTEX_ATTRIB_ARRAY_POINTER"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
         Property {
             name: "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"
-            type: "CanvasContext::glEnums"
-            isReadonly: true
-        }
-        Property { name: "COMPILE_STATUS"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "LOW_FLOAT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "MEDIUM_FLOAT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "HIGH_FLOAT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "LOW_INT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "MEDIUM_INT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "HIGH_INT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "FRAMEBUFFER"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "RENDERBUFFER"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "RGBA4"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "RGB5_A1"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "RGB565"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "DEPTH_COMPONENT16"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STENCIL_INDEX"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STENCIL_INDEX8"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "DEPTH_STENCIL"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "RENDERBUFFER_WIDTH"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "RENDERBUFFER_HEIGHT"; type: "CanvasContext::glEnums"; isReadonly: true }
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "COMPILE_STATUS"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "LOW_FLOAT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "MEDIUM_FLOAT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "HIGH_FLOAT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "LOW_INT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "MEDIUM_INT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "HIGH_INT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "FRAMEBUFFER"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "RENDERBUFFER"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "RGBA4"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "RGB5_A1"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property { name: "RGB565"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "DEPTH_COMPONENT16"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "STENCIL_INDEX"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "STENCIL_INDEX8"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "DEPTH_STENCIL"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "RENDERBUFFER_WIDTH"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "RENDERBUFFER_HEIGHT"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
         Property {
             name: "RENDERBUFFER_INTERNAL_FORMAT"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "RENDERBUFFER_RED_SIZE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "RENDERBUFFER_GREEN_SIZE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "RENDERBUFFER_BLUE_SIZE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "RENDERBUFFER_ALPHA_SIZE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "RENDERBUFFER_DEPTH_SIZE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "RENDERBUFFER_STENCIL_SIZE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
-        Property { name: "RENDERBUFFER_RED_SIZE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "RENDERBUFFER_GREEN_SIZE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "RENDERBUFFER_BLUE_SIZE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "RENDERBUFFER_ALPHA_SIZE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "RENDERBUFFER_DEPTH_SIZE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "RENDERBUFFER_STENCIL_SIZE"; type: "CanvasContext::glEnums"; isReadonly: true }
         Property {
             name: "FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
         Property {
             name: "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
         Property {
             name: "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
         Property {
             name: "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "COLOR_ATTACHMENT0"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "DEPTH_ATTACHMENT"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "STENCIL_ATTACHMENT"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "DEPTH_STENCIL_ATTACHMENT"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property { name: "NONE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
+        Property {
+            name: "FRAMEBUFFER_COMPLETE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
-        Property { name: "COLOR_ATTACHMENT0"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "DEPTH_ATTACHMENT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "STENCIL_ATTACHMENT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "DEPTH_STENCIL_ATTACHMENT"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "NONE"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "FRAMEBUFFER_COMPLETE"; type: "CanvasContext::glEnums"; isReadonly: true }
         Property {
             name: "FRAMEBUFFER_INCOMPLETE_ATTACHMENT"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
         Property {
             name: "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
         Property {
             name: "FRAMEBUFFER_INCOMPLETE_DIMENSIONS"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "FRAMEBUFFER_UNSUPPORTED"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "FRAMEBUFFER_BINDING"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "RENDERBUFFER_BINDING"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "MAX_RENDERBUFFER_SIZE"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
-        Property { name: "FRAMEBUFFER_UNSUPPORTED"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "FRAMEBUFFER_BINDING"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "RENDERBUFFER_BINDING"; type: "CanvasContext::glEnums"; isReadonly: true }
-        Property { name: "MAX_RENDERBUFFER_SIZE"; type: "CanvasContext::glEnums"; isReadonly: true }
         Property {
             name: "INVALID_FRAMEBUFFER_OPERATION"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "UNPACK_FLIP_Y_WEBGL"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
-        Property { name: "UNPACK_FLIP_Y_WEBGL"; type: "CanvasContext::glEnums"; isReadonly: true }
         Property {
             name: "UNPACK_PREMULTIPLY_ALPHA_WEBGL"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "CONTEXT_LOST_WEBGL"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
-        Property { name: "CONTEXT_LOST_WEBGL"; type: "CanvasContext::glEnums"; isReadonly: true }
         Property {
             name: "UNPACK_COLORSPACE_CONVERSION_WEBGL"
-            type: "CanvasContext::glEnums"
+            type: "QtCanvas3D::CanvasContext::glEnums"
+            isReadonly: true
+        }
+        Property {
+            name: "BROWSER_DEFAULT_WEBGL"
+            type: "QtCanvas3D::CanvasContext::glEnums"
             isReadonly: true
         }
-        Property { name: "BROWSER_DEFAULT_WEBGL"; type: "CanvasContext::glEnums"; isReadonly: true }
         Signal {
             name: "canvasChanged"
             Parameter { name: "canvas"; type: "Canvas"; isPointer: true }
@@ -1731,8 +2167,8 @@ Module {
         }
     }
     Component {
-        name: "CanvasContextAttributes"
-        prototype: "CanvasAbstractObject"
+        name: "QtCanvas3D::CanvasContextAttributes"
+        prototype: "QtCanvas3D::CanvasAbstractObject"
         exports: ["QtCanvas3D/ContextAttributes 1.0"]
         exportMetaObjectRevisions: [0]
         Property { name: "alpha"; type: "bool" }
@@ -1777,8 +2213,8 @@ Module {
         }
     }
     Component {
-        name: "CanvasFloat32Array"
-        prototype: "CanvasTypedArray"
+        name: "QtCanvas3D::CanvasFloat32Array"
+        prototype: "QtCanvas3D::CanvasTypedArray"
         exports: ["QtCanvas3D/Float32Array 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
@@ -1812,8 +2248,8 @@ Module {
         }
     }
     Component {
-        name: "CanvasFloat64Array"
-        prototype: "CanvasTypedArray"
+        name: "QtCanvas3D::CanvasFloat64Array"
+        prototype: "QtCanvas3D::CanvasTypedArray"
         exports: ["QtCanvas3D/Float64Array 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
@@ -1829,14 +2265,14 @@ Module {
         }
     }
     Component {
-        name: "CanvasFrameBuffer"
-        prototype: "CanvasAbstractObject"
+        name: "QtCanvas3D::CanvasFrameBuffer"
+        prototype: "QtCanvas3D::CanvasAbstractObject"
         exports: ["QtCanvas3D/FrameBuffer3D 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
     }
     Component {
-        name: "CanvasGLStateDump"
+        name: "QtCanvas3D::CanvasGLStateDump"
         prototype: "QObject"
         exports: ["QtCanvas3D/GLStateDumpExt 1.0"]
         isCreatable: false
@@ -1844,14 +2280,14 @@ Module {
         Enum {
             name: "stateDumpEnums"
             values: {
-                "DUMP_BASIC_ONLY_BIT": 0,
+                "DUMP_BASIC_ONLY": 0,
                 "DUMP_VERTEX_ATTRIB_ARRAYS_BIT": 1,
-                "DUMP_VERTEX_ATTRIB_ARRAYS_CONTENTS_BIT": 2,
+                "DUMP_VERTEX_ATTRIB_ARRAYS_BUFFERS_BIT": 2,
                 "DUMP_FULL": 3
             }
         }
         Property {
-            name: "DUMP_BASIC_ONLY_BIT"
+            name: "DUMP_BASIC_ONLY"
             type: "CanvasGLStateDump::stateDumpEnums"
             isReadonly: true
         }
@@ -1861,7 +2297,7 @@ Module {
             isReadonly: true
         }
         Property {
-            name: "DUMP_VERTEX_ATTRIB_ARRAYS_CONTENTS_BIT"
+            name: "DUMP_VERTEX_ATTRIB_ARRAYS_BUFFERS_BIT"
             type: "CanvasGLStateDump::stateDumpEnums"
             isReadonly: true
         }
@@ -1874,8 +2310,8 @@ Module {
         Method { name: "getGLStateDump"; type: "string" }
     }
     Component {
-        name: "CanvasInt16Array"
-        prototype: "CanvasTypedArray"
+        name: "QtCanvas3D::CanvasInt16Array"
+        prototype: "QtCanvas3D::CanvasTypedArray"
         exports: ["QtCanvas3D/Int16Array 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
@@ -1891,8 +2327,8 @@ Module {
         }
     }
     Component {
-        name: "CanvasInt32Array"
-        prototype: "CanvasTypedArray"
+        name: "QtCanvas3D::CanvasInt32Array"
+        prototype: "QtCanvas3D::CanvasTypedArray"
         exports: ["QtCanvas3D/Int32Array 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
@@ -1908,8 +2344,8 @@ Module {
         }
     }
     Component {
-        name: "CanvasInt8Array"
-        prototype: "CanvasTypedArray"
+        name: "QtCanvas3D::CanvasInt8Array"
+        prototype: "QtCanvas3D::CanvasTypedArray"
         exports: ["QtCanvas3D/Int8Array 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
@@ -1925,8 +2361,8 @@ Module {
         }
     }
     Component {
-        name: "CanvasProgram"
-        prototype: "CanvasAbstractObject"
+        name: "QtCanvas3D::CanvasProgram"
+        prototype: "QtCanvas3D::CanvasAbstractObject"
         exports: ["QtCanvas3D/Program3D 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
@@ -1937,22 +2373,22 @@ Module {
         }
     }
     Component {
-        name: "CanvasRenderBuffer"
-        prototype: "CanvasAbstractObject"
+        name: "QtCanvas3D::CanvasRenderBuffer"
+        prototype: "QtCanvas3D::CanvasAbstractObject"
         exports: ["QtCanvas3D/RenderBuffer3D 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
     }
     Component {
-        name: "CanvasShader"
-        prototype: "CanvasAbstractObject"
+        name: "QtCanvas3D::CanvasShader"
+        prototype: "QtCanvas3D::CanvasAbstractObject"
         exports: ["QtCanvas3D/Shader3D 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
     }
     Component {
-        name: "CanvasShaderPrecisionFormat"
-        prototype: "CanvasAbstractObject"
+        name: "QtCanvas3D::CanvasShaderPrecisionFormat"
+        prototype: "QtCanvas3D::CanvasAbstractObject"
         exports: ["QtCanvas3D/ShaderPrecisionFormat 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
@@ -1973,15 +2409,15 @@ Module {
         }
     }
     Component {
-        name: "CanvasTexture"
-        prototype: "CanvasAbstractObject"
+        name: "QtCanvas3D::CanvasTexture"
+        prototype: "QtCanvas3D::CanvasAbstractObject"
         exports: ["QtCanvas3D/Texture3D 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
     }
     Component {
-        name: "CanvasTextureImage"
-        prototype: "CanvasAbstractObject"
+        name: "QtCanvas3D::CanvasTextureImage"
+        prototype: "QtCanvas3D::CanvasAbstractObject"
         exports: ["QtCanvas3D/TextureImage 1.0"]
         exportMetaObjectRevisions: [0]
         Enum {
@@ -2045,7 +2481,7 @@ Module {
         }
     }
     Component {
-        name: "CanvasTextureImageFactory"
+        name: "QtCanvas3D::CanvasTextureImageFactory"
         prototype: "QObject"
         exports: ["QtCanvas3D/TextureImageFactory 1.0"]
         isCreatable: false
@@ -2054,8 +2490,8 @@ Module {
         Method { name: "newTexImage"; type: "CanvasTextureImage*" }
     }
     Component {
-        name: "CanvasTypedArray"
-        prototype: "CanvasArrayBufferView"
+        name: "QtCanvas3D::CanvasTypedArray"
+        prototype: "QtCanvas3D::CanvasArrayBufferView"
         exports: ["QtCanvas3D/TypedArray 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
@@ -2066,7 +2502,7 @@ Module {
         }
     }
     Component {
-        name: "CanvasTypedArrayFactory"
+        name: "QtCanvas3D::CanvasTypedArrayFactory"
         prototype: "QObject"
         exports: ["QtCanvas3D/Arrays 1.0"]
         isCreatable: false
@@ -2263,8 +2699,8 @@ Module {
         }
     }
     Component {
-        name: "CanvasUint16Array"
-        prototype: "CanvasTypedArray"
+        name: "QtCanvas3D::CanvasUint16Array"
+        prototype: "QtCanvas3D::CanvasTypedArray"
         exports: ["QtCanvas3D/Uint16Array 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
@@ -2280,8 +2716,8 @@ Module {
         }
     }
     Component {
-        name: "CanvasUint32Array"
-        prototype: "CanvasTypedArray"
+        name: "QtCanvas3D::CanvasUint32Array"
+        prototype: "QtCanvas3D::CanvasTypedArray"
         exports: ["QtCanvas3D/Uint32Array 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
@@ -2297,8 +2733,8 @@ Module {
         }
     }
     Component {
-        name: "CanvasUint8Array"
-        prototype: "CanvasTypedArray"
+        name: "QtCanvas3D::CanvasUint8Array"
+        prototype: "QtCanvas3D::CanvasTypedArray"
         exports: ["QtCanvas3D/Uint8Array 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
@@ -2314,8 +2750,8 @@ Module {
         }
     }
     Component {
-        name: "CanvasUint8ClampedArray"
-        prototype: "CanvasTypedArray"
+        name: "QtCanvas3D::CanvasUint8ClampedArray"
+        prototype: "QtCanvas3D::CanvasTypedArray"
         exports: ["QtCanvas3D/Uint8ClampedArray 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
@@ -2331,8 +2767,8 @@ Module {
         }
     }
     Component {
-        name: "CanvasUniformLocation"
-        prototype: "CanvasAbstractObject"
+        name: "QtCanvas3D::CanvasUniformLocation"
+        prototype: "QtCanvas3D::CanvasAbstractObject"
         exports: ["QtCanvas3D/UniformLocation 1.0"]
         isCreatable: false
         exportMetaObjectRevisions: [0]
diff --git a/src/program3d.cpp b/src/program3d.cpp
index cd3ff02..b2f2186 100644
--- a/src/program3d.cpp
+++ b/src/program3d.cpp
@@ -36,6 +36,8 @@
 
 #include "program3d_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype Program3D
  * \since QtCanvas3D 1.0
@@ -222,3 +224,4 @@ QDebug operator<<(QDebug dbg, const CanvasProgram *program)
     return dbg.maybeSpace();
 }
 
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/program3d_p.h b/src/program3d_p.h
index 23127ce..608e70f 100644
--- a/src/program3d_p.h
+++ b/src/program3d_p.h
@@ -56,6 +56,8 @@
 #include <QDebug>
 #include <QList>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasProgram : public CanvasAbstractObject, protected QOpenGLFunctions
 {
     Q_OBJECT
@@ -92,4 +94,6 @@ signals:
     void idChanged(int id);
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // PROGRAM3D_P_H
diff --git a/src/qcanvas3d_plugin.cpp b/src/qcanvas3d_plugin.cpp
index c0977ba..726d989 100644
--- a/src/qcanvas3d_plugin.cpp
+++ b/src/qcanvas3d_plugin.cpp
@@ -38,6 +38,8 @@
 
 #include <QtQml/qqml.h>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 void QtCanvas3DPlugin::registerTypes(const char *uri)
 {
     // @uri com.digia.qtcanvas3d
@@ -160,4 +162,4 @@ void QtCanvas3DPlugin::registerTypes(const char *uri)
                                                   QLatin1String("Trying to create uncreatable: GLStateDumpExt, use Context3D.getExtension(\"" QT_CANVAS3D_GL_STATE_DUMP_EXT_NAME "\") instead."));
 }
 
-
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/qcanvas3d_plugin.h b/src/qcanvas3d_plugin.h
index beedc1c..d6af392 100644
--- a/src/qcanvas3d_plugin.h
+++ b/src/qcanvas3d_plugin.h
@@ -67,10 +67,11 @@
 
 #include <QQmlExtensionPlugin>
 
+using namespace QtCanvas3D;
+
 Q_DECLARE_METATYPE(CanvasBuffer)
 
 QML_DECLARE_TYPE(Canvas)
-//QML_DECLARE_TYPE(QFBOCanvas3D)
 QML_DECLARE_TYPE(CanvasContext)
 QML_DECLARE_TYPE(CanvasTexture)
 QML_DECLARE_TYPE(CanvasShader)
@@ -99,6 +100,8 @@ QML_DECLARE_TYPE(CanvasShaderPrecisionFormat)
 QML_DECLARE_TYPE(CanvasActiveInfo)
 QML_DECLARE_TYPE(CanvasGLStateDump)
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class QtCanvas3DPlugin : public QQmlExtensionPlugin
 {
     Q_OBJECT
@@ -108,5 +111,7 @@ public:
     void registerTypes(const char *uri);
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // QCANVAS3D_PLUGIN_H
 
diff --git a/src/renderbuffer3d.cpp b/src/renderbuffer3d.cpp
index 067df6c..19444e5 100644
--- a/src/renderbuffer3d.cpp
+++ b/src/renderbuffer3d.cpp
@@ -36,6 +36,8 @@
 
 #include "renderbuffer3d_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype RenderBuffer3D
  * \since QtCanvas3D 1.0
@@ -91,3 +93,5 @@ GLuint CanvasRenderBuffer::id()
 {
     return m_renderbufferId;
 }
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/renderbuffer3d_p.h b/src/renderbuffer3d_p.h
index 8da1b7b..360e33d 100644
--- a/src/renderbuffer3d_p.h
+++ b/src/renderbuffer3d_p.h
@@ -52,6 +52,8 @@
 #include <QObject>
 #include <QOpenGLFunctions>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasRenderBuffer : public CanvasAbstractObject, protected QOpenGLFunctions
 {
     Q_OBJECT
@@ -66,4 +68,6 @@ private:
     GLuint m_renderbufferId;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // RENDERBUFFER3D_P_H
diff --git a/src/shader3d.cpp b/src/shader3d.cpp
index f6d060c..4d6f8b3 100644
--- a/src/shader3d.cpp
+++ b/src/shader3d.cpp
@@ -36,6 +36,8 @@
 
 #include "shader3d_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype Shader3D
  * \since QtCanvas3D 1.0
@@ -104,3 +106,5 @@ void CanvasShader::setSourceCode(const QString &source)
 {
     m_sourceCode = source;
 }
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/shader3d_p.h b/src/shader3d_p.h
index ba4de3e..4e09484 100644
--- a/src/shader3d_p.h
+++ b/src/shader3d_p.h
@@ -52,6 +52,8 @@
 
 #include <QOpenGLShader>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasShader : public CanvasAbstractObject
 {
     Q_OBJECT
@@ -71,4 +73,6 @@ private:
     QString m_sourceCode;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // SHADER3D_P_H
diff --git a/src/shaderprecisionformat.cpp b/src/shaderprecisionformat.cpp
index 02562e8..aab397a 100644
--- a/src/shaderprecisionformat.cpp
+++ b/src/shaderprecisionformat.cpp
@@ -36,6 +36,8 @@
 
 #include "shaderprecisionformat_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype ShaderPrecisionFormat
  * \since QtCanvas3D 1.0
@@ -85,3 +87,5 @@ CanvasShaderPrecisionFormat::CanvasShaderPrecisionFormat(QObject *parent) :
  * \qmlproperty int ShaderPrecisionFormat::precision
  * The number of bits of precision that can be represented. 0 for integer formats.
  */
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/shaderprecisionformat_p.h b/src/shaderprecisionformat_p.h
index 12e7b95..8185aa1 100644
--- a/src/shaderprecisionformat_p.h
+++ b/src/shaderprecisionformat_p.h
@@ -51,6 +51,8 @@
 
 #include <QObject>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasShaderPrecisionFormat : public CanvasAbstractObject
 {
     Q_OBJECT
@@ -80,4 +82,6 @@ private:
     int m_precision;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // SHADERPRECISIONFORMAT_P_H
diff --git a/src/teximage3d.cpp b/src/teximage3d.cpp
index e9836c8..0481a1f 100644
--- a/src/teximage3d.cpp
+++ b/src/teximage3d.cpp
@@ -40,6 +40,8 @@
 #include <QJSValueIterator>
 #include <QtQml/QQmlEngine>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 static QMap<QQmlEngine *,CanvasTextureImageFactory *>m_qmlEngineToImageFactoryMap;
 
 class StaticFactoryMapDeleter
@@ -528,3 +530,4 @@ QDebug operator<<(QDebug dbg, const CanvasTextureImage *texImage)
     return dbg.maybeSpace();
 }
 
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/teximage3d_p.h b/src/teximage3d_p.h
index de93a7b..23540c7 100644
--- a/src/teximage3d_p.h
+++ b/src/teximage3d_p.h
@@ -55,6 +55,8 @@
 #include <QtNetwork/QNetworkAccessManager>
 #include <QtNetwork/QNetworkReply>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasTextureImageFactory : public QObject
 {
     Q_OBJECT
@@ -151,4 +153,6 @@ private:
     CanvasTextureImageFactory *m_parentFactory;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // TEXIMAGE3D_P_H
diff --git a/src/texture3d.cpp b/src/texture3d.cpp
index 69db079..a7dfd92 100644
--- a/src/texture3d.cpp
+++ b/src/texture3d.cpp
@@ -36,6 +36,8 @@
 
 #include "texture3d_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype Texture3D
  * \since QtCanvas3D 1.0
@@ -118,3 +120,5 @@ QDebug operator<<(QDebug dbg, const CanvasTexture *texture)
         dbg.nospace() << "Texture3D("<< ((void*) texture) <<")";
     return dbg.maybeSpace();
 }
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/texture3d_p.h b/src/texture3d_p.h
index f328685..e7199e8 100644
--- a/src/texture3d_p.h
+++ b/src/texture3d_p.h
@@ -53,6 +53,8 @@
 #include <QtGui/QOpenGLTexture>
 #include <QtGui/QOpenGLFunctions>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasTexture : public CanvasAbstractObject, protected QOpenGLFunctions
 {
     Q_OBJECT
@@ -73,4 +75,6 @@ public:
     bool m_isAlive;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // TEXTURE3D_P_H
diff --git a/src/typedarray/arraybuffer.cpp b/src/typedarray/arraybuffer.cpp
index f35d8ec..90f6c00 100644
--- a/src/typedarray/arraybuffer.cpp
+++ b/src/typedarray/arraybuffer.cpp
@@ -36,6 +36,8 @@
 
 #include "arraybuffer_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype ArrayBuffer
  * \since QtCanvas3D 1.0
@@ -175,3 +177,5 @@ bool CanvasArrayBuffer::isView(const QObject &value)
             className == "CanvasFloat32Array" ||
             className == "CanvasFloat64Array");
 }
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/typedarray/arraybuffer_p.h b/src/typedarray/arraybuffer_p.h
index 0f5bd5f..5845736 100644
--- a/src/typedarray/arraybuffer_p.h
+++ b/src/typedarray/arraybuffer_p.h
@@ -47,8 +47,11 @@
 #ifndef ARRAYBUFFER_P_H
 #define ARRAYBUFFER_P_H
 
+#include "../canvas3dcommon_p.h"
 #include <QObject>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasArrayBuffer : public QObject
 {
     Q_OBJECT
@@ -93,4 +96,6 @@ private:
     friend class CanvasContext;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // ARRAYBUFFER_P_H
diff --git a/src/typedarray/arraybufferview.cpp b/src/typedarray/arraybufferview.cpp
index 7679c22..1eb8b68 100644
--- a/src/typedarray/arraybufferview.cpp
+++ b/src/typedarray/arraybufferview.cpp
@@ -37,6 +37,8 @@
 #include "arraybufferview_p.h"
 #include "arraybuffer_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype ArrayBufferView
  * \since QtCanvas3D 1.0
@@ -119,3 +121,5 @@ CanvasArrayBuffer *CanvasArrayBufferView::buffer()
 {
     return m_buffer;
 }
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/typedarray/arraybufferview_p.h b/src/typedarray/arraybufferview_p.h
index dadc224..5783ee7 100644
--- a/src/typedarray/arraybufferview_p.h
+++ b/src/typedarray/arraybufferview_p.h
@@ -50,6 +50,8 @@
 #include "../context3d_p.h"
 #include "../abstractobject3d_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasArrayBuffer;
 
 class CanvasArrayBufferView : public CanvasAbstractObject
@@ -94,4 +96,6 @@ protected:
     unsigned long m_byteOffset;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // ARRAYBUFFERVIEW_P_H
diff --git a/src/typedarray/float32array.cpp b/src/typedarray/float32array.cpp
index 52e2b89..7d9a7e9 100644
--- a/src/typedarray/float32array.cpp
+++ b/src/typedarray/float32array.cpp
@@ -38,6 +38,8 @@
 #include "../arrayutils_p.h"
 #include "arraybuffer_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype Float32Array
  * \since QtCanvas3D 1.0
@@ -257,3 +259,5 @@ QDebug operator<<(QDebug dbg, const CanvasFloat32Array *array)
         dbg.nospace() << "Float32Array (null)";
     return dbg.maybeSpace();
 }
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/typedarray/float32array_p.h b/src/typedarray/float32array_p.h
index de8024a..8d59b5e 100644
--- a/src/typedarray/float32array_p.h
+++ b/src/typedarray/float32array_p.h
@@ -49,6 +49,8 @@
 
 #include "typedarray_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasFloat32Array : public CanvasTypedArray
 {
     Q_OBJECT
@@ -79,4 +81,6 @@ private:
     float *m_typedBuffer;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // FLOAT32ARRAY_P_H
diff --git a/src/typedarray/float64array.cpp b/src/typedarray/float64array.cpp
index 0f20445..929d3e0 100644
--- a/src/typedarray/float64array.cpp
+++ b/src/typedarray/float64array.cpp
@@ -38,6 +38,8 @@
 #include "../arrayutils_p.h"
 #include "arraybuffer_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype Float64Array
  * \since QtCanvas3D 1.0
@@ -199,3 +201,4 @@ TypedArray *Float64Array::subarray(long begin, long end)
 }
 */
 
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/typedarray/float64array_p.h b/src/typedarray/float64array_p.h
index b45c5c7..073bc95 100644
--- a/src/typedarray/float64array_p.h
+++ b/src/typedarray/float64array_p.h
@@ -49,6 +49,8 @@
 
 #include "typedarray_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasFloat64Array : public CanvasTypedArray
 {
     Q_OBJECT
@@ -77,4 +79,6 @@ private:
     double *m_typedBuffer;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // FLOAT64ARRAY_P_H
diff --git a/src/typedarray/int16array.cpp b/src/typedarray/int16array.cpp
index 4a3d742..1c6184d 100644
--- a/src/typedarray/int16array.cpp
+++ b/src/typedarray/int16array.cpp
@@ -38,6 +38,8 @@
 #include "../arrayutils_p.h"
 #include "arraybuffer_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype Int16Array
  * \since QtCanvas3D 1.0
@@ -196,3 +198,5 @@ TypedArray *Int16Array::subarray(long begin, long end)
 
 }
 */
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/typedarray/int16array_p.h b/src/typedarray/int16array_p.h
index 9378483..46283ca 100644
--- a/src/typedarray/int16array_p.h
+++ b/src/typedarray/int16array_p.h
@@ -49,6 +49,8 @@
 
 #include "typedarray_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasInt16Array : public CanvasTypedArray
 {
     Q_OBJECT
@@ -77,4 +79,6 @@ private:
     short *m_typedBuffer;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // INT16ARRAY_P_H
diff --git a/src/typedarray/int32array.cpp b/src/typedarray/int32array.cpp
index 0c626d2..ed7f3eb 100644
--- a/src/typedarray/int32array.cpp
+++ b/src/typedarray/int32array.cpp
@@ -38,6 +38,8 @@
 #include "../arrayutils_p.h"
 #include "arraybuffer_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype Int32Array
  * \since QtCanvas3D 1.0
@@ -196,3 +198,4 @@ TypedArray *Int32Array::subarray(long begin, long end)
 }
 */
 
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/typedarray/int32array_p.h b/src/typedarray/int32array_p.h
index 1e7e13e..0566215 100644
--- a/src/typedarray/int32array_p.h
+++ b/src/typedarray/int32array_p.h
@@ -49,6 +49,8 @@
 
 #include "typedarray_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasInt32Array : public CanvasTypedArray
 {
     Q_OBJECT
@@ -77,4 +79,6 @@ private:
     int *m_typedBuffer;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // INT32ARRAY_P_H
diff --git a/src/typedarray/int8array.cpp b/src/typedarray/int8array.cpp
index a09db45..565a126 100644
--- a/src/typedarray/int8array.cpp
+++ b/src/typedarray/int8array.cpp
@@ -38,6 +38,8 @@
 #include "../arrayutils_p.h"
 #include "arraybuffer_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype Int8Array
  * \since QtCanvas3D 1.0
@@ -195,3 +197,5 @@ Int8Array *Int8Array::subarray(long begin, long end)
 
 }
 */
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/typedarray/int8array_p.h b/src/typedarray/int8array_p.h
index f1df8c0..11e31e3 100644
--- a/src/typedarray/int8array_p.h
+++ b/src/typedarray/int8array_p.h
@@ -49,6 +49,8 @@
 
 #include "typedarray_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasInt8Array : public CanvasTypedArray
 {
     Q_OBJECT
@@ -76,4 +78,6 @@ private:
     signed char *m_typedBuffer;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // INT8ARRAY_P_H
diff --git a/src/typedarray/typedarray.cpp b/src/typedarray/typedarray.cpp
index 5e6cabd..3448928 100644
--- a/src/typedarray/typedarray.cpp
+++ b/src/typedarray/typedarray.cpp
@@ -37,6 +37,8 @@
 #include "typedarray_p.h"
 #include "arraybuffer_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype TypedArray
  * \since QtCanvas3D 1.0
@@ -120,3 +122,5 @@ QDebug operator<<(QDebug dbg, const CanvasTypedArray *array)
         dbg.nospace() << "TypedArray (null)";
     return dbg.maybeSpace();
 }
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/typedarray/typedarray_p.h b/src/typedarray/typedarray_p.h
index cc1157b..03ed67a 100644
--- a/src/typedarray/typedarray_p.h
+++ b/src/typedarray/typedarray_p.h
@@ -49,6 +49,8 @@
 
 #include "arraybufferview_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasArrayBuffer;
 
 class CanvasTypedArray : public CanvasArrayBufferView
@@ -79,4 +81,6 @@ private:
     unsigned long m_length;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // TYPEDARRAY_P_H
diff --git a/src/typedarray/typedarrayfactory.cpp b/src/typedarray/typedarrayfactory.cpp
index 95aea38..7a9f4fe 100644
--- a/src/typedarray/typedarrayfactory.cpp
+++ b/src/typedarray/typedarrayfactory.cpp
@@ -50,6 +50,8 @@
 
 #include <QDebug>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype Arrays
  * \since QtCanvas3D 1.0
@@ -574,3 +576,4 @@ CanvasUint8ClampedArray *CanvasTypedArrayFactory::newUint8ClampedArray(CanvasArr
     return new CanvasUint8ClampedArray(buffer, byteOffset);
 }
 
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/typedarray/typedarrayfactory_p.h b/src/typedarray/typedarrayfactory_p.h
index bd9d30d..e7d7265 100644
--- a/src/typedarray/typedarrayfactory_p.h
+++ b/src/typedarray/typedarrayfactory_p.h
@@ -47,11 +47,14 @@
 #ifndef TYPEDARRAYFACTORY_P_H
 #define TYPEDARRAYFACTORY_P_H
 
+#include "../canvas3dcommon_p.h"
 #include <QObject>
 #include <QVariantList>
 #include <QQmlEngine>
 #include <QJSEngine>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasInt8Array;
 class CanvasUint8Array;
 class CanvasInt16Array;
@@ -132,4 +135,6 @@ public:
                                                               unsigned long byteOffset);
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // TYPEDARRAYFACTORY_P_H
diff --git a/src/typedarray/uint16array.cpp b/src/typedarray/uint16array.cpp
index 70a92ee..2983d44 100644
--- a/src/typedarray/uint16array.cpp
+++ b/src/typedarray/uint16array.cpp
@@ -38,6 +38,8 @@
 #include "../arrayutils_p.h"
 #include "arraybuffer_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype Uint16Array
  * \since QtCanvas3D 1.0
@@ -199,3 +201,5 @@ TypedArray *Uint16Array::subarray(long begin, long end)
 
 }
 */
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/typedarray/uint16array_p.h b/src/typedarray/uint16array_p.h
index de500ad..107885d 100644
--- a/src/typedarray/uint16array_p.h
+++ b/src/typedarray/uint16array_p.h
@@ -49,6 +49,8 @@
 
 #include "typedarray_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasUint16Array : public CanvasTypedArray
 {
     Q_OBJECT
@@ -77,4 +79,6 @@ private:
     unsigned short *m_typedBuffer;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // UINT16ARRAY_P_H
diff --git a/src/typedarray/uint32array.cpp b/src/typedarray/uint32array.cpp
index f9b097e..209adc4 100644
--- a/src/typedarray/uint32array.cpp
+++ b/src/typedarray/uint32array.cpp
@@ -38,6 +38,8 @@
 #include "../arrayutils_p.h"
 #include "arraybuffer_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype Uint32Array
  * \since QtCanvas3D 1.0
@@ -192,3 +194,5 @@ TypedArray *Uint32Array::subarray(long begin, long end)
 
 }
 */
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/typedarray/uint32array_p.h b/src/typedarray/uint32array_p.h
index 844ba9d..2ddc179 100644
--- a/src/typedarray/uint32array_p.h
+++ b/src/typedarray/uint32array_p.h
@@ -51,6 +51,8 @@
 
 #include <QObject>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasUint32Array : public CanvasTypedArray
 {
     Q_OBJECT
@@ -79,4 +81,6 @@ private:
     unsigned int *m_typedBuffer;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // UINT32ARRAY_P_H
diff --git a/src/typedarray/uint8array.cpp b/src/typedarray/uint8array.cpp
index f41de82..b510285 100644
--- a/src/typedarray/uint8array.cpp
+++ b/src/typedarray/uint8array.cpp
@@ -38,6 +38,8 @@
 #include "../arrayutils_p.h"
 #include "arraybuffer_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype Uint8Array
  * \since QtCanvas3D 1.0
@@ -196,3 +198,5 @@ TypedArray *Uint8Array::subarray(long begin, long end)
 
 }
 */
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/typedarray/uint8array_p.h b/src/typedarray/uint8array_p.h
index 1320e97..8ba59ae 100644
--- a/src/typedarray/uint8array_p.h
+++ b/src/typedarray/uint8array_p.h
@@ -49,6 +49,8 @@
 
 #include "typedarray_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasUint8Array : public CanvasTypedArray
 {
     Q_OBJECT
@@ -77,4 +79,6 @@ private:
     unsigned char *m_typedBuffer;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // UINT8ARRAY_P_H
diff --git a/src/typedarray/uint8clampedarray.cpp b/src/typedarray/uint8clampedarray.cpp
index d2d6161..2d58af7 100644
--- a/src/typedarray/uint8clampedarray.cpp
+++ b/src/typedarray/uint8clampedarray.cpp
@@ -38,6 +38,8 @@
 #include "../arrayutils_p.h"
 #include "arraybuffer_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype Uint8ClampedArray
  * \since QtCanvas3D 1.0
@@ -195,3 +197,5 @@ TypedArray *Uint8ClampedArray::subarray(long begin, long end)
 
 }
 */
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/typedarray/uint8clampedarray_p.h b/src/typedarray/uint8clampedarray_p.h
index dcfb563..1d01c4d 100644
--- a/src/typedarray/uint8clampedarray_p.h
+++ b/src/typedarray/uint8clampedarray_p.h
@@ -49,6 +49,8 @@
 
 #include "typedarray_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasUint8ClampedArray : public CanvasTypedArray
 {
     Q_OBJECT
@@ -76,4 +78,6 @@ private:
     unsigned char *m_typedBuffer;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // UINT8CLAMPEDARRAY_P_H
diff --git a/src/uniformlocation.cpp b/src/uniformlocation.cpp
index 0793def..2b49ed1 100644
--- a/src/uniformlocation.cpp
+++ b/src/uniformlocation.cpp
@@ -36,6 +36,8 @@
 
 #include "uniformlocation_p.h"
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 /*!
  * \qmltype UniformLocation
  * \since QtCanvas3D 1.0
@@ -82,3 +84,5 @@ QDebug operator<<(QDebug dbg, const CanvasUniformLocation *uLoc)
 
     return dbg.maybeSpace();
 }
+
+QT_CANVAS3D_END_NAMESPACE
diff --git a/src/uniformlocation_p.h b/src/uniformlocation_p.h
index 7c4c45b..db5e8c5 100644
--- a/src/uniformlocation_p.h
+++ b/src/uniformlocation_p.h
@@ -51,6 +51,8 @@
 
 #include <QDebug>
 
+QT_CANVAS3D_BEGIN_NAMESPACE
+
 class CanvasUniformLocation : public CanvasAbstractObject
 {
     Q_OBJECT
@@ -67,4 +69,6 @@ private:
     int m_location;
 };
 
+QT_CANVAS3D_END_NAMESPACE
+
 #endif // UNIFORMLOCATION_P_H
-- 
GitLab