diff --git a/src/abstractobject3d.cpp b/src/abstractobject3d.cpp
index 6f1c87faf3e8e3b25f0ec688845fa176fccc6cee..147db70fdbad7d496f67f6e6498eec127b38bb38 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 0845adfa6d731f06c6090eadcae336114707f72c..ff398360863813882b621226f292339416549735 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 188b00017ff33adb85f59ae257a90bcb432871dc..d84cd54b997a656a33a5b1a0d95826043f83ec3a 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 66ddd43e582a1d26a3d3227ae115d19630d1419a..35271d0b17f39dea8b88fa373b95c29dcaba5bcf 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 d15ce0c4b653dd2b15b03d74ed800fc0e89ecc66..b041f7aadfb2fd74ccbdd20db11e181aceba2b53 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 7f18ece814d0889623b023158b62e18bd138f91f..671388bff7330423bfeb6df285e4c6a5eee7c77f 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 5f8665243ce66601425ceb4e0319a684993330d1..e88782ad60bb9693fc6fa3dfee2ab998d46ded19 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 1d97655a6613b121e53ec91ccd13e5451165a50c..acaeba0e6329c3bc870537ef734f6edf8b351ffd 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 b5179d34da30de6c315dfe655b93e767ae837c2c..8956db7e0349d6ddd15ae9d68ca9808125420d9f 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 4516de1365933e5bdb76a14fd9b4fa6221751135..568517a710fbf251bacb048e7e7964911c667883 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 7f7c9aabf207225cf856f7cf262b8437bc4338d3..dd2355759c8406416a5a206001afa36369aacc5e 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 70110a726a22585b9682000449bb40b939646746..503d546a211b9a0f1347f5a00e6e42639a65513e 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 c05fc8a4c1f01fc003a28aab6deab1821fffc02f..dbe3f819f8fa012e64cae042dda29e92226ecb1c 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 0c529b9a9b9be29467c4618a0c96adb0956826b2..744810781218d9a9457f634b2136e8a8cf8e6085 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 5fe078cda2fce9a37128100f6bd59302f1635328..5fc0ffcdf55c4f970173408b8bb872566c8e90e7 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 411dc3d564cce445d98dea92dad8c95e1983d7d2..10fd077f361df72b087ee048c5d961f00276f781 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 e2f4ffa5659a15b1a50d214c4ce67fb268c5c4ee..c7df9b6c6367d18572a5cd4271ecd11759c33814 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 df1a8dfd385c388710aacf3b38c070cefc5fd641..6d3f7012af60aae6a2651f0a68cf70157000fe42 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 9ee7912f506d2ed8241bb1d6bd95a24deaec3de8..3de546e21639ce048b356d56e69ad44814231482 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 300653526559ebbfb4e78249f2b0ff09f9b9dae9..895f806b23768ecd1d2ac0b4bd39cd5e29088af4 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 c9605f082624e5389ec96a69b20393f5a71b4640..92a4dd09170e2e3f45582237af0b6b5529ffa2d3 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 107a9b9517d824dc789d77abdbc4737d79a7b0de..1021c28ed95dcbf67ee2d0f48e1392e372130216 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 aa64300cc90153fee59650183df791a8bd5d7618..3a99c69d0035463458d6872db0c3dc9eabd83ae0 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 2042338745c84c959524d2f2296992b5318fe0ef..0dc3828a2f9bccffe1dc28f52940bbb9db1743b4 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 e96591e0d85e87b259e74e41125488ebeec66099..953e233f1843ed07f16ae52b4c25ce0041594308 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 cd3ff0284a3bb8083d3180b2f70785d832cf536f..b2f2186573dd06f3b1eb56449b2868969acf0a42 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 23127ce6059b81de64d870913893ee8b2171b3be..608e70f4d0b7eff89275e2af52217ceca62bdee9 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 c0977ba54ff01947f59550fbd990e09ac8544dfb..726d9894a81e20573c4aaf238ee72d219e9dbb99 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 beedc1c1a1b134ca29a3ab9d24dd660d84d86592..d6af392e8179c0201b0319d2915332b038b9f4cc 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 067df6c250cd4cc53d185510ece90a0168d18e20..19444e5b11fb34819cb363370d1ef3d44025fd21 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 8da1b7b5dce1a7ff06c527d9ba2582dd7f50515f..360e33d1b6235046bdd7f9bc94ad35aaa37953e9 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 f6d060c0ed60298f3f43b2a7336834e6f5f00de1..4d6f8b3737c2545e022086b3270e1996dfc31f89 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 ba4de3ef859eb7e2ee5d6d2aa88dd581d355aee4..4e09484839b17d7789f15ecb8642636cf6338127 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 02562e888b190ecc447ef137e245468ea66a23a4..aab397a18ba22ce7c174212618a1be4d7cb59c60 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 12e7b95578e4c91714d1b336b87824a1adf1e1eb..8185aa1873b87db0cde1ef0c8c84b6df8e1cc52e 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 e9836c802d8095a36ff03087de0d13e6211575c2..0481a1fce9c76269420d933f628aeba4aaae9be4 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 de93a7b347eb7ed6548eb291ab553e228fabfb43..23540c7a275dd0a3fae683633817fc00b36a1881 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 69db0793a3a32b3ea0163ab0d9ea28b9208a1591..a7dfd92f6109e3fe23fa1d38f05072075e7f801e 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 f328685c9b4738705d86a98a5ff91e9f2e13a8b1..e7199e8edc5dac12cdd43ac15c7e6d126f7a330b 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 f35d8ec42c9826085c68bb3b72f4259ac371ef97..90f6c006dbb4fc6b7089109434e78217567e6e1a 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 0f5bd5f2174f57cda5a518432436912fab526a25..5845736f3f12aa6ba4a2a470d3aa62e6e218a57c 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 7679c224a57562b4489ceed91a9c6b4e5aa2cc26..1eb8b68b8a9782b2d343d6a1cdeeafca219ff0c1 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 dadc22469c36b67118cb9b227ffd80ec3a70b182..5783ee7ada45c99382576a19b30c9ee6da87e2a7 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 52e2b89018784c2c6376bc89f60534e4e09e8d16..7d9a7e983e16be0c3c791151bf411ce32f2b726b 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 de8024a805bb6616c8791e9b09cceeedcbe2fc38..8d59b5e435866c738f2fcf72431cb69676ef08bb 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 0f2044549091f19faccf2abf09d21da97f1da49e..929d3e038dad66ade2d32ca4bc867b2ea0845ea4 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 b45c5c713d4e3398a763c6c1d8e18a996866e10f..073bc9548b59cb910e0fc3500b8fdfd676044cb1 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 4a3d7420f71058be47b6ce7c32c4c0f757c0d9e9..1c6184db41d57a23bf76324713cc3f702faea765 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 9378483e53323dee8968c616c0359cf0f87e2ce9..46283caa8ae4e65193dae447e22866d20f05b296 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 0c626d2189e4250f736ff291318d3ee8e4a8fd24..ed7f3eb9466e992639b3602bac38d4c365040e6f 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 1e7e13edf97cc79d78c5073b19b3d4eb6718a9f2..05662159510563426ad2046d4fd56a277bf60733 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 a09db45c1addb98eb8295f38544ebb7e763d2c6e..565a126d2f9515b35398ba40514d031cb0f1d28f 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 f1df8c0605c6e3d619263e13db8f384b0ff03c48..11e31e3fef067ff59ce8868a7aa61a2f34a28d6d 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 5e6cabd5f34eff1270cda1081a2c18a3c9713999..34489289e0619278b5cf7035d08124827e13e642 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 cc1157b46da98b098a7d03c8842520061a0295dc..03ed67a31677ed00680a6b3ac26f7f15581bbec4 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 95aea3891b094f1bf577df77bf5815b2e743ad26..7a9f4fe2674669a6bb8ab8c7296dd8a2de47a087 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 bd9d30d32f715ee3951b0d3a35b851c38baf703c..e7d7265af1a01343f843298ba671de72341c30d8 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 70a92ee9292f994c48f80452382dbef00276a3c6..2983d44b9ad9fdf095a8c3a820863cc63b29ad6c 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 de500ad5ecd1876298bed0e37a4d877b076e8ebf..107885d25533c0a4f37df28bc1c6aea89430d903 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 f9b097e741545058732d3ec296a2f119627d1a9a..209adc494c5518e90aefdeb10041f44f933d7919 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 844ba9dba7b26890aeaeabac9f238fcb71dd10e4..2ddc1796c9391228cb11421dc69742b6fd1225b1 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 f41de821f03c7f540e8adc054f3334131e46072e..b510285d406ba9bfa230db965cc6d0c682aa437c 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 1320e978613037351073bc3f1730f1567d2d4635..8ba59aea909d3a75729ea6ba4e83db88ad4348ab 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 d2d6161a3522d4cfd4d9ee87317c079cbbd9d52e..2d58af7a9e2b6447ad161a2d90ed9c96b5ee7ba2 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 dcfb563cbbccf25f19b0f446e50db3d48d38cca1..1d01c4df2a72e08baf6afdda6abee08ea820715a 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 0793def5654c9dc36c2290b740c91fa4c6682038..2b49ed19972fe8e14adb73275cec982802f44a87 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 7c4c45b68ab350b2eb7fa30af27eab2ce9d1c7f2..db5e8c58a6192f1d2b58728944065ce25a0e83c3 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