From 484040fd9e67487f223e19aa5456ef0c7792ccda Mon Sep 17 00:00:00 2001
From: Pasi Keranen <pasi.keranen@digia.com>
Date: Fri, 21 Nov 2014 15:54:00 +0200
Subject: [PATCH] Cleanup and documenting more known issues.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Moved typed array code to new subdirectory to make it more clear what parts are going to be removed in final release.
Documented the temporary renaming of some of the methods to work around issues in overloaded function calls from JavaScript.

Change-Id: I5a22741a3b4025149724df9d6b25abc4de3ff5bc
Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
---
 README                                     | 15 ++++
 src/arrayutils_p.h                         | 20 ++---
 src/buffer3d.cpp                           |  2 +-
 src/canvas3d.cpp                           | 15 ++--
 src/context3d.cpp                          | 19 ++---
 src/doc/src/qtcanvas3d.qdoc                | 17 ++++
 src/qcanvas3d_plugin.cpp                   | 94 +++++++++++-----------
 src/qcanvas3d_plugin.h                     | 26 +++---
 src/src.pro                                | 58 ++++++-------
 src/{ => typedarray}/arraybuffer.cpp       |  0
 src/{ => typedarray}/arraybuffer_p.h       |  0
 src/{ => typedarray}/arraybufferview.cpp   |  0
 src/{ => typedarray}/arraybufferview_p.h   |  4 +-
 src/{ => typedarray}/float32array.cpp      |  2 +-
 src/{ => typedarray}/float32array_p.h      |  0
 src/{ => typedarray}/float64array.cpp      |  2 +-
 src/{ => typedarray}/float64array_p.h      |  0
 src/{ => typedarray}/int16array.cpp        |  2 +-
 src/{ => typedarray}/int16array_p.h        |  0
 src/{ => typedarray}/int32array.cpp        |  2 +-
 src/{ => typedarray}/int32array_p.h        |  0
 src/{ => typedarray}/int8array.cpp         |  2 +-
 src/{ => typedarray}/int8array_p.h         |  0
 src/{ => typedarray}/typedarray.cpp        |  0
 src/{ => typedarray}/typedarray_p.h        |  0
 src/{ => typedarray}/typedarrayfactory.cpp |  4 +-
 src/{ => typedarray}/typedarrayfactory_p.h |  0
 src/{ => typedarray}/uint16array.cpp       |  2 +-
 src/{ => typedarray}/uint16array_p.h       |  0
 src/{ => typedarray}/uint32array.cpp       |  2 +-
 src/{ => typedarray}/uint32array_p.h       |  0
 src/{ => typedarray}/uint8array.cpp        |  2 +-
 src/{ => typedarray}/uint8array_p.h        |  0
 src/{ => typedarray}/uint8clampedarray.cpp |  2 +-
 src/{ => typedarray}/uint8clampedarray_p.h |  0
 35 files changed, 164 insertions(+), 128 deletions(-)
 rename src/{ => typedarray}/arraybuffer.cpp (100%)
 rename src/{ => typedarray}/arraybuffer_p.h (100%)
 rename src/{ => typedarray}/arraybufferview.cpp (100%)
 rename src/{ => typedarray}/arraybufferview_p.h (98%)
 rename src/{ => typedarray}/float32array.cpp (99%)
 rename src/{ => typedarray}/float32array_p.h (100%)
 rename src/{ => typedarray}/float64array.cpp (99%)
 rename src/{ => typedarray}/float64array_p.h (100%)
 rename src/{ => typedarray}/int16array.cpp (99%)
 rename src/{ => typedarray}/int16array_p.h (100%)
 rename src/{ => typedarray}/int32array.cpp (99%)
 rename src/{ => typedarray}/int32array_p.h (100%)
 rename src/{ => typedarray}/int8array.cpp (99%)
 rename src/{ => typedarray}/int8array_p.h (100%)
 rename src/{ => typedarray}/typedarray.cpp (100%)
 rename src/{ => typedarray}/typedarray_p.h (100%)
 rename src/{ => typedarray}/typedarrayfactory.cpp (99%)
 rename src/{ => typedarray}/typedarrayfactory_p.h (100%)
 rename src/{ => typedarray}/uint16array.cpp (99%)
 rename src/{ => typedarray}/uint16array_p.h (100%)
 rename src/{ => typedarray}/uint32array.cpp (99%)
 rename src/{ => typedarray}/uint32array_p.h (100%)
 rename src/{ => typedarray}/uint8array.cpp (99%)
 rename src/{ => typedarray}/uint8array_p.h (100%)
 rename src/{ => typedarray}/uint8clampedarray.cpp (99%)
 rename src/{ => typedarray}/uint8clampedarray_p.h (100%)

diff --git a/README b/README
index 87fe6bc..2b3e7d5 100644
--- a/README
+++ b/README
@@ -79,3 +79,18 @@ Known Issues
   on Windows in certain circumstances (try JSON Models Example for reference).
 - Resizing window works incorrectly if viewport is updated during rendering to match
   the window size (try Framebuffer Example for reference).
+- These methods are named for Tech Preview with “a” postfix to denote “array” versions taking a JavaScript array instead of TypedArray.
+  This is to resolve method overloading problems with the current QObject based TypedArray implementation and will be rectified before final release:
+    void uniform1fva(CanvasUniformLocation *location, QVariantList array)
+    void uniform2fva(CanvasUniformLocation *location, QVariantList array)
+    void uniform3fva(CanvasUniformLocation *location, QVariantList array)
+    void uniform4fva(CanvasUniformLocation *location, QVariantList array)
+    void uniform1iva(CanvasUniformLocation *location, QVariantList array)
+    void uniform2iva(CanvasUniformLocation *location, QVariantList array)
+    void uniform3iva(CanvasUniformLocation *location, QVariantList array)
+    void uniform4iva(CanvasUniformLocation *location, QVariantList array)
+    void vertexAttrib1fva(uint indx, QVariantList values)
+    void vertexAttrib2fva(uint indx, QVariantList values)
+    void vertexAttrib3fva(uint indx, QVariantList values)
+    void vertexAttrib4fva(uint indx, QVariantList values)
+
diff --git a/src/arrayutils_p.h b/src/arrayutils_p.h
index d035866..d15ce0c 100644
--- a/src/arrayutils_p.h
+++ b/src/arrayutils_p.h
@@ -47,16 +47,16 @@
 #ifndef ARRAYUTILS_P_H
 #define ARRAYUTILS_P_H
 
-#include "typedarray_p.h"
-#include "int8array_p.h"
-#include "uint8array_p.h"
-#include "int16array_p.h"
-#include "uint16array_p.h"
-#include "int32array_p.h"
-#include "uint32array_p.h"
-#include "float32array_p.h"
-#include "float64array_p.h"
-#include "uint8clampedarray_p.h"
+#include "typedarray/typedarray_p.h"
+#include "typedarray/int8array_p.h"
+#include "typedarray/uint8array_p.h"
+#include "typedarray/int16array_p.h"
+#include "typedarray/uint16array_p.h"
+#include "typedarray/int32array_p.h"
+#include "typedarray/uint32array_p.h"
+#include "typedarray/float32array_p.h"
+#include "typedarray/float64array_p.h"
+#include "typedarray/uint8clampedarray_p.h"
 
 // Contains static template functions used by the TypedArray classes.
 class ArrayUtils
diff --git a/src/buffer3d.cpp b/src/buffer3d.cpp
index 2d0e2d9..7f18ece 100644
--- a/src/buffer3d.cpp
+++ b/src/buffer3d.cpp
@@ -35,7 +35,7 @@
 ****************************************************************************/
 
 #include "buffer3d_p.h"
-#include "typedarray_p.h"
+#include "typedarray/typedarray_p.h"
 
 #include <QDebug>
 #include <QString>
diff --git a/src/canvas3d.cpp b/src/canvas3d.cpp
index f03d122..1d97655 100644
--- a/src/canvas3d.cpp
+++ b/src/canvas3d.cpp
@@ -36,13 +36,14 @@
 
 #include "canvas3d_p.h"
 #include "context3d_p.h"
-#include "typedarray_p.h"
-#include "uint32array_p.h"
-#include "arraybuffer_p.h"
 #include "canvas3dcommon_p.h"
 #include "canvasrendernode_p.h"
 #include "teximage3d_p.h"
 
+#include "typedarray/typedarray_p.h"
+#include "typedarray/uint32array_p.h"
+#include "typedarray/arraybuffer_p.h"
+
 #include <QtGui/QGuiApplication>
 #include <QtGui/QOffscreenSurface>
 #include <QtGui/QOpenGLContext>
@@ -50,10 +51,6 @@
 #include <QtQml/QQmlEngine>
 #include <QtQml/QQmlContext>
 
-static QList<const QQuickWindow *> staticClearList;
-static QHash<Canvas *, QQuickWindow *> canvasWindowList;
-static QHash<QQuickWindow *, bool> windowClearList;
-
 /*!
  * \qmltype Canvas3D
  * \since QtCanvas3D 1.0
@@ -97,7 +94,8 @@ Canvas::Canvas(QQuickItem *parent):
     m_isContextAttribsSet(false),
     m_antialiasFbo(0),
     m_renderFbo(0),
-    m_displayFbo(0)
+    m_displayFbo(0),
+    m_offscreenSurface(0)
 {
     if (m_logAllCalls) qDebug() << "Canvas3D::" << __FUNCTION__;
     connect(this, &QQuickItem::windowChanged, this, &Canvas::handleWindowChanged);
@@ -236,6 +234,7 @@ float Canvas::devicePixelRatio()
         return 1.0f;
 }
 
+
 /*!
  * \qmlmethod Context3D Canvas3D::getContext(string type)
  * Returns the 3D rendering context that allows 3D rendering calls to be made.
diff --git a/src/context3d.cpp b/src/context3d.cpp
index 2018656..5fe078c 100644
--- a/src/context3d.cpp
+++ b/src/context3d.cpp
@@ -45,15 +45,6 @@
 #include "framebuffer3d_p.h"
 #include "renderbuffer3d_p.h"
 #include "uniformlocation_p.h"
-#include "arraybuffer_p.h"
-#include "int8array_p.h"
-#include "uint8array_p.h"
-#include "int16array_p.h"
-#include "uint16array_p.h"
-#include "int32array_p.h"
-#include "uint32array_p.h"
-#include "float32array_p.h"
-#include "float64array_p.h"
 #include "teximage3d_p.h"
 #include "arrayutils_p.h"
 #include "shaderprecisionformat_p.h"
@@ -61,6 +52,16 @@
 #include "canvas3dcommon_p.h"
 #include "contextextensions_p.h"
 
+#include "typedarray/arraybuffer_p.h"
+#include "typedarray/int8array_p.h"
+#include "typedarray/uint8array_p.h"
+#include "typedarray/int16array_p.h"
+#include "typedarray/uint16array_p.h"
+#include "typedarray/int32array_p.h"
+#include "typedarray/uint32array_p.h"
+#include "typedarray/float32array_p.h"
+#include "typedarray/float64array_p.h"
+
 #include <QtGui/QOpenGLShader>
 
 /*!
diff --git a/src/doc/src/qtcanvas3d.qdoc b/src/doc/src/qtcanvas3d.qdoc
index f674a0c..f78cb95 100644
--- a/src/doc/src/qtcanvas3d.qdoc
+++ b/src/doc/src/qtcanvas3d.qdoc
@@ -174,5 +174,22 @@
             on Windows in certain circumstances (try \l{JSON Models Example} for reference).
         \li Resizing window works incorrectly if viewport is updated during rendering to match
             the window size (try \l{Framebuffer Example} for reference).
+        \li These methods are named for Tech Preview with “a” postfix to denote “array” versions taking a JavaScript array instead of TypedArray.
+            This is to resolve method overloading problems with the current QObject based TypedArray implementation and will be rectified before final release:
+   \code
+    void uniform1fva(CanvasUniformLocation *location, QVariantList array)
+    void uniform2fva(CanvasUniformLocation *location, QVariantList array)
+    void uniform3fva(CanvasUniformLocation *location, QVariantList array)
+    void uniform4fva(CanvasUniformLocation *location, QVariantList array)
+    void uniform1iva(CanvasUniformLocation *location, QVariantList array)
+    void uniform2iva(CanvasUniformLocation *location, QVariantList array)
+    void uniform3iva(CanvasUniformLocation *location, QVariantList array)
+    void uniform4iva(CanvasUniformLocation *location, QVariantList array)
+    void vertexAttrib1fva(uint indx, QVariantList values)
+    void vertexAttrib2fva(uint indx, QVariantList values)
+    void vertexAttrib3fva(uint indx, QVariantList values)
+    void vertexAttrib4fva(uint indx, QVariantList values)
+    \endcode
+
     \endlist
 */
diff --git a/src/qcanvas3d_plugin.cpp b/src/qcanvas3d_plugin.cpp
index 56d79b1..c0977ba 100644
--- a/src/qcanvas3d_plugin.cpp
+++ b/src/qcanvas3d_plugin.cpp
@@ -41,10 +41,8 @@
 void QtCanvas3DPlugin::registerTypes(const char *uri)
 {
     // @uri com.digia.qtcanvas3d
-    qmlRegisterSingletonType<CanvasTypedArrayFactory>(uri,
-                                                      1, 0,
-                                                      "Arrays",
-                                                      CanvasTypedArrayFactory::type_array_factory_provider);
+
+    // QTCANVAS3D CORE API
     qmlRegisterSingletonType<CanvasTextureImageFactory>(uri,
                                                         1, 0,
                                                         "TextureImageFactory",
@@ -59,47 +57,6 @@ void QtCanvas3DPlugin::registerTypes(const char *uri)
     qmlRegisterType<CanvasContextAttributes>(uri,
                                              1, 0,
                                              "ContextAttributes");
-
-    qmlRegisterUncreatableType<CanvasArrayBuffer>(uri,
-                                                  1, 0,
-                                                  "ArrayBuffer",
-                                                  QLatin1String("Trying to create uncreatable: ArrayBuffer."));
-    qmlRegisterUncreatableType<CanvasInt8Array>(uri,
-                                                1, 0,
-                                                "Int8Array",
-                                                QLatin1String("Trying to create uncreatable: Int8Array, use Arrays.newInt8Array() instead."));
-    qmlRegisterUncreatableType<CanvasUint8Array>(uri,
-                                                 1, 0,
-                                                 "Uint8Array",
-                                                 QLatin1String("Trying to create uncreatable: Uint8Array, use Arrays.newUint8Array() instead."));
-    qmlRegisterUncreatableType<CanvasUint8ClampedArray>(uri,
-                                                        1, 0,
-                                                        "Uint8ClampedArray",
-                                                        QLatin1String("Trying to create uncreatable: Uint8ClampedArray, use Arrays.newUint8ClampedArray() instead."));
-    qmlRegisterUncreatableType<CanvasInt16Array>(uri,
-                                                 1, 0,
-                                                 "Int16Array",
-                                                 QLatin1String("Trying to create uncreatable: Int16Array, use Arrays.newInt16Array() instead."));
-    qmlRegisterUncreatableType<CanvasUint16Array>(uri,
-                                                  1, 0,
-                                                  "Uint16Array",
-                                                  QLatin1String("Trying to create uncreatable: Uint16Array, use Arrays.newUint16Array() instead."));
-    qmlRegisterUncreatableType<CanvasInt32Array>(uri,
-                                                 1, 0,
-                                                 "Int32Array",
-                                                 QLatin1String("Trying to create uncreatable: Int32Array, use Arrays.newInt32Array() instead."));
-    qmlRegisterUncreatableType<CanvasUint32Array>(uri,
-                                                  1, 0,
-                                                  "Uint32Array",
-                                                  QLatin1String("Trying to create uncreatable: Uint32Array, use Arrays.newUint32Array() instead."));
-    qmlRegisterUncreatableType<CanvasFloat32Array>(uri,
-                                                   1, 0,
-                                                   "Float32Array",
-                                                   QLatin1String("Trying to create uncreatable: Float32Array, use Arrays.newFloat32Array() instead."));
-    qmlRegisterUncreatableType<CanvasFloat64Array>(uri,
-                                                   1, 0,
-                                                   "Float64Array",
-                                                   QLatin1String("Trying to create uncreatable: Float64Array, use Arrays.newFloat64Array() instead."));
     qmlRegisterUncreatableType<CanvasShaderPrecisionFormat>(uri,
                                                             1, 0,
                                                             "ShaderPrecisionFormat",
@@ -149,6 +106,53 @@ void QtCanvas3DPlugin::registerTypes(const char *uri)
                                                       "UniformLocation",
                                                       QLatin1String("Trying to create uncreatable: UniformLocation, use Context3D.getUniformLocation() instead."));
 
+    // TYPED ARRAY IMPLEMENTATION
+    qmlRegisterSingletonType<CanvasTypedArrayFactory>(uri,
+                                                      1, 0,
+                                                      "Arrays",
+                                                      CanvasTypedArrayFactory::type_array_factory_provider);
+
+    qmlRegisterUncreatableType<CanvasArrayBuffer>(uri,
+                                                  1, 0,
+                                                  "ArrayBuffer",
+                                                  QLatin1String("Trying to create uncreatable: ArrayBuffer."));
+    qmlRegisterUncreatableType<CanvasInt8Array>(uri,
+                                                1, 0,
+                                                "Int8Array",
+                                                QLatin1String("Trying to create uncreatable: Int8Array, use Arrays.newInt8Array() instead."));
+    qmlRegisterUncreatableType<CanvasUint8Array>(uri,
+                                                 1, 0,
+                                                 "Uint8Array",
+                                                 QLatin1String("Trying to create uncreatable: Uint8Array, use Arrays.newUint8Array() instead."));
+    qmlRegisterUncreatableType<CanvasUint8ClampedArray>(uri,
+                                                        1, 0,
+                                                        "Uint8ClampedArray",
+                                                        QLatin1String("Trying to create uncreatable: Uint8ClampedArray, use Arrays.newUint8ClampedArray() instead."));
+    qmlRegisterUncreatableType<CanvasInt16Array>(uri,
+                                                 1, 0,
+                                                 "Int16Array",
+                                                 QLatin1String("Trying to create uncreatable: Int16Array, use Arrays.newInt16Array() instead."));
+    qmlRegisterUncreatableType<CanvasUint16Array>(uri,
+                                                  1, 0,
+                                                  "Uint16Array",
+                                                  QLatin1String("Trying to create uncreatable: Uint16Array, use Arrays.newUint16Array() instead."));
+    qmlRegisterUncreatableType<CanvasInt32Array>(uri,
+                                                 1, 0,
+                                                 "Int32Array",
+                                                 QLatin1String("Trying to create uncreatable: Int32Array, use Arrays.newInt32Array() instead."));
+    qmlRegisterUncreatableType<CanvasUint32Array>(uri,
+                                                  1, 0,
+                                                  "Uint32Array",
+                                                  QLatin1String("Trying to create uncreatable: Uint32Array, use Arrays.newUint32Array() instead."));
+    qmlRegisterUncreatableType<CanvasFloat32Array>(uri,
+                                                   1, 0,
+                                                   "Float32Array",
+                                                   QLatin1String("Trying to create uncreatable: Float32Array, use Arrays.newFloat32Array() instead."));
+    qmlRegisterUncreatableType<CanvasFloat64Array>(uri,
+                                                   1, 0,
+                                                   "Float64Array",
+                                                   QLatin1String("Trying to create uncreatable: Float64Array, use Arrays.newFloat64Array() instead."));
+
     // EXTENSIONS
     qmlRegisterUncreatableType<CanvasGLStateDump>(uri,
                                                   1, 0,
diff --git a/src/qcanvas3d_plugin.h b/src/qcanvas3d_plugin.h
index 2bda1e7..beedc1c 100644
--- a/src/qcanvas3d_plugin.h
+++ b/src/qcanvas3d_plugin.h
@@ -45,25 +45,25 @@
 #include "buffer3d_p.h"
 #include "uniformlocation_p.h"
 #include "teximage3d_p.h"
-#include "typedarrayfactory_p.h"
-#include "typedarray_p.h"
-#include "arraybuffer_p.h"
-#include "arraybufferview_p.h"
-#include "int8array_p.h"
-#include "uint8array_p.h"
-#include "int16array_p.h"
-#include "uint16array_p.h"
-#include "int32array_p.h"
-#include "uint32array_p.h"
-#include "float32array_p.h"
-#include "float64array_p.h"
-#include "uint8clampedarray_p.h"
 #include "contextattributes_p.h"
 #include "framebuffer3d_p.h"
 #include "renderbuffer3d_p.h"
 #include "shaderprecisionformat_p.h"
 #include "activeinfo3d_p.h"
 #include "canvasglstatedump_p.h"
+#include "typedarray/typedarrayfactory_p.h"
+#include "typedarray/typedarray_p.h"
+#include "typedarray/arraybuffer_p.h"
+#include "typedarray/arraybufferview_p.h"
+#include "typedarray/int8array_p.h"
+#include "typedarray/uint8array_p.h"
+#include "typedarray/int16array_p.h"
+#include "typedarray/uint16array_p.h"
+#include "typedarray/int32array_p.h"
+#include "typedarray/uint32array_p.h"
+#include "typedarray/float32array_p.h"
+#include "typedarray/float64array_p.h"
+#include "typedarray/uint8clampedarray_p.h"
 
 #include <QQmlExtensionPlugin>
 
diff --git a/src/src.pro b/src/src.pro
index 1f842d5..9470673 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -14,22 +14,22 @@ include($$PWD/designer/designer.pri)
 
 QMAKE_DOCS = $$PWD/doc/qtcanvas3d.qdocconf
 
-SOURCES += qcanvas3d_plugin.cpp \
-    arraybuffer.cpp \
-    arraybufferview.cpp \
-    float32array.cpp \
-    uint8array.cpp \
-    uint16array.cpp \
-    int8array.cpp \
-    int16array.cpp \
-    int32array.cpp \
-    uint32array.cpp \
-    float64array.cpp \
-    typedarrayfactory.cpp \
-    typedarray.cpp \
+SOURCES += typedarray/arraybuffer.cpp \
+    typedarray/arraybufferview.cpp \
+    typedarray/float32array.cpp \
+    typedarray/uint8array.cpp \
+    typedarray/uint16array.cpp \
+    typedarray/int8array.cpp \
+    typedarray/int16array.cpp \
+    typedarray/int32array.cpp \
+    typedarray/uint32array.cpp \
+    typedarray/float64array.cpp \
+    typedarray/typedarrayfactory.cpp \
+    typedarray/typedarray.cpp \
+    typedarray/uint8clampedarray.cpp \
+    qcanvas3d_plugin.cpp \
     arrayutils.cpp \
     enumtostringmap.cpp \
-    uint8clampedarray.cpp \
     abstractobject3d.cpp \
     canvas3d.cpp \
     buffer3d.cpp \
@@ -48,22 +48,22 @@ SOURCES += qcanvas3d_plugin.cpp \
     activeinfo3d.cpp \
     canvasglstatedump.cpp
 
-HEADERS += qcanvas3d_plugin.h \
-    arraybuffer_p.h \
-    arraybufferview_p.h \
-    float32array_p.h \
-    uint8array_p.h \
-    uint16array_p.h \
-    int8array_p.h \
-    int16array_p.h \
-    int32array_p.h \
-    uint32array_p.h \
-    float64array_p.h \
-    typedarrayfactory_p.h \
-    typedarray_p.h \
-    arrayutils_p.h \
+HEADERS += typedarray/arraybuffer_p.h \
+    typedarray/arraybufferview_p.h \
+    typedarray/float32array_p.h \
+    typedarray/uint8array_p.h \
+    typedarray/uint16array_p.h \
+    typedarray/int8array_p.h \
+    typedarray/int16array_p.h \
+    typedarray/int32array_p.h \
+    typedarray/uint32array_p.h \
+    typedarray/float64array_p.h \
+    typedarray/typedarrayfactory_p.h \
+    typedarray/typedarray_p.h \
+    typedarray/arrayutils_p.h \
+    typedarray/uint8clampedarray_p.h \
+    qcanvas3d_plugin.h \
     enumtostringmap_p.h \
-    uint8clampedarray_p.h \
     abstractobject3d_p.h \
     canvas3d_p.h \
     buffer3d_p.h \
diff --git a/src/arraybuffer.cpp b/src/typedarray/arraybuffer.cpp
similarity index 100%
rename from src/arraybuffer.cpp
rename to src/typedarray/arraybuffer.cpp
diff --git a/src/arraybuffer_p.h b/src/typedarray/arraybuffer_p.h
similarity index 100%
rename from src/arraybuffer_p.h
rename to src/typedarray/arraybuffer_p.h
diff --git a/src/arraybufferview.cpp b/src/typedarray/arraybufferview.cpp
similarity index 100%
rename from src/arraybufferview.cpp
rename to src/typedarray/arraybufferview.cpp
diff --git a/src/arraybufferview_p.h b/src/typedarray/arraybufferview_p.h
similarity index 98%
rename from src/arraybufferview_p.h
rename to src/typedarray/arraybufferview_p.h
index 0af2897..dadc224 100644
--- a/src/arraybufferview_p.h
+++ b/src/typedarray/arraybufferview_p.h
@@ -47,8 +47,8 @@
 #ifndef ARRAYBUFFERVIEW_P_H
 #define ARRAYBUFFERVIEW_P_H
 
-#include "context3d_p.h"
-#include "abstractobject3d_p.h"
+#include "../context3d_p.h"
+#include "../abstractobject3d_p.h"
 
 class CanvasArrayBuffer;
 
diff --git a/src/float32array.cpp b/src/typedarray/float32array.cpp
similarity index 99%
rename from src/float32array.cpp
rename to src/typedarray/float32array.cpp
index b9de1e7..52e2b89 100644
--- a/src/float32array.cpp
+++ b/src/typedarray/float32array.cpp
@@ -35,7 +35,7 @@
 ****************************************************************************/
 
 #include "float32array_p.h"
-#include "arrayutils_p.h"
+#include "../arrayutils_p.h"
 #include "arraybuffer_p.h"
 
 /*!
diff --git a/src/float32array_p.h b/src/typedarray/float32array_p.h
similarity index 100%
rename from src/float32array_p.h
rename to src/typedarray/float32array_p.h
diff --git a/src/float64array.cpp b/src/typedarray/float64array.cpp
similarity index 99%
rename from src/float64array.cpp
rename to src/typedarray/float64array.cpp
index 8ee7b1b..0f20445 100644
--- a/src/float64array.cpp
+++ b/src/typedarray/float64array.cpp
@@ -35,7 +35,7 @@
 ****************************************************************************/
 
 #include "float64array_p.h"
-#include "arrayutils_p.h"
+#include "../arrayutils_p.h"
 #include "arraybuffer_p.h"
 
 /*!
diff --git a/src/float64array_p.h b/src/typedarray/float64array_p.h
similarity index 100%
rename from src/float64array_p.h
rename to src/typedarray/float64array_p.h
diff --git a/src/int16array.cpp b/src/typedarray/int16array.cpp
similarity index 99%
rename from src/int16array.cpp
rename to src/typedarray/int16array.cpp
index 9d76c40..4a3d742 100644
--- a/src/int16array.cpp
+++ b/src/typedarray/int16array.cpp
@@ -35,7 +35,7 @@
 ****************************************************************************/
 
 #include "int16array_p.h"
-#include "arrayutils_p.h"
+#include "../arrayutils_p.h"
 #include "arraybuffer_p.h"
 
 /*!
diff --git a/src/int16array_p.h b/src/typedarray/int16array_p.h
similarity index 100%
rename from src/int16array_p.h
rename to src/typedarray/int16array_p.h
diff --git a/src/int32array.cpp b/src/typedarray/int32array.cpp
similarity index 99%
rename from src/int32array.cpp
rename to src/typedarray/int32array.cpp
index da17cb3..0c626d2 100644
--- a/src/int32array.cpp
+++ b/src/typedarray/int32array.cpp
@@ -35,7 +35,7 @@
 ****************************************************************************/
 
 #include "int32array_p.h"
-#include "arrayutils_p.h"
+#include "../arrayutils_p.h"
 #include "arraybuffer_p.h"
 
 /*!
diff --git a/src/int32array_p.h b/src/typedarray/int32array_p.h
similarity index 100%
rename from src/int32array_p.h
rename to src/typedarray/int32array_p.h
diff --git a/src/int8array.cpp b/src/typedarray/int8array.cpp
similarity index 99%
rename from src/int8array.cpp
rename to src/typedarray/int8array.cpp
index bbe5d87..a09db45 100644
--- a/src/int8array.cpp
+++ b/src/typedarray/int8array.cpp
@@ -35,7 +35,7 @@
 ****************************************************************************/
 
 #include "int8array_p.h"
-#include "arrayutils_p.h"
+#include "../arrayutils_p.h"
 #include "arraybuffer_p.h"
 
 /*!
diff --git a/src/int8array_p.h b/src/typedarray/int8array_p.h
similarity index 100%
rename from src/int8array_p.h
rename to src/typedarray/int8array_p.h
diff --git a/src/typedarray.cpp b/src/typedarray/typedarray.cpp
similarity index 100%
rename from src/typedarray.cpp
rename to src/typedarray/typedarray.cpp
diff --git a/src/typedarray_p.h b/src/typedarray/typedarray_p.h
similarity index 100%
rename from src/typedarray_p.h
rename to src/typedarray/typedarray_p.h
diff --git a/src/typedarrayfactory.cpp b/src/typedarray/typedarrayfactory.cpp
similarity index 99%
rename from src/typedarrayfactory.cpp
rename to src/typedarray/typedarrayfactory.cpp
index 8fd8fcc..95aea38 100644
--- a/src/typedarrayfactory.cpp
+++ b/src/typedarray/typedarrayfactory.cpp
@@ -45,8 +45,8 @@
 #include "float32array_p.h"
 #include "float64array_p.h"
 #include "uint8clampedarray_p.h"
-#include "canvas3dcommon_p.h"
-#include "teximage3d_p.h"
+#include "../canvas3dcommon_p.h"
+#include "../teximage3d_p.h"
 
 #include <QDebug>
 
diff --git a/src/typedarrayfactory_p.h b/src/typedarray/typedarrayfactory_p.h
similarity index 100%
rename from src/typedarrayfactory_p.h
rename to src/typedarray/typedarrayfactory_p.h
diff --git a/src/uint16array.cpp b/src/typedarray/uint16array.cpp
similarity index 99%
rename from src/uint16array.cpp
rename to src/typedarray/uint16array.cpp
index 1eebb09..70a92ee 100644
--- a/src/uint16array.cpp
+++ b/src/typedarray/uint16array.cpp
@@ -35,7 +35,7 @@
 ****************************************************************************/
 
 #include "uint16array_p.h"
-#include "arrayutils_p.h"
+#include "../arrayutils_p.h"
 #include "arraybuffer_p.h"
 
 /*!
diff --git a/src/uint16array_p.h b/src/typedarray/uint16array_p.h
similarity index 100%
rename from src/uint16array_p.h
rename to src/typedarray/uint16array_p.h
diff --git a/src/uint32array.cpp b/src/typedarray/uint32array.cpp
similarity index 99%
rename from src/uint32array.cpp
rename to src/typedarray/uint32array.cpp
index 81c2e1c..f9b097e 100644
--- a/src/uint32array.cpp
+++ b/src/typedarray/uint32array.cpp
@@ -35,7 +35,7 @@
 ****************************************************************************/
 
 #include "uint32array_p.h"
-#include "arrayutils_p.h"
+#include "../arrayutils_p.h"
 #include "arraybuffer_p.h"
 
 /*!
diff --git a/src/uint32array_p.h b/src/typedarray/uint32array_p.h
similarity index 100%
rename from src/uint32array_p.h
rename to src/typedarray/uint32array_p.h
diff --git a/src/uint8array.cpp b/src/typedarray/uint8array.cpp
similarity index 99%
rename from src/uint8array.cpp
rename to src/typedarray/uint8array.cpp
index 56630c5..f41de82 100644
--- a/src/uint8array.cpp
+++ b/src/typedarray/uint8array.cpp
@@ -35,7 +35,7 @@
 ****************************************************************************/
 
 #include "uint8array_p.h"
-#include "arrayutils_p.h"
+#include "../arrayutils_p.h"
 #include "arraybuffer_p.h"
 
 /*!
diff --git a/src/uint8array_p.h b/src/typedarray/uint8array_p.h
similarity index 100%
rename from src/uint8array_p.h
rename to src/typedarray/uint8array_p.h
diff --git a/src/uint8clampedarray.cpp b/src/typedarray/uint8clampedarray.cpp
similarity index 99%
rename from src/uint8clampedarray.cpp
rename to src/typedarray/uint8clampedarray.cpp
index d3c89b2..d2d6161 100644
--- a/src/uint8clampedarray.cpp
+++ b/src/typedarray/uint8clampedarray.cpp
@@ -35,7 +35,7 @@
 ****************************************************************************/
 
 #include "uint8clampedarray_p.h"
-#include "arrayutils_p.h"
+#include "../arrayutils_p.h"
 #include "arraybuffer_p.h"
 
 /*!
diff --git a/src/uint8clampedarray_p.h b/src/typedarray/uint8clampedarray_p.h
similarity index 100%
rename from src/uint8clampedarray_p.h
rename to src/typedarray/uint8clampedarray_p.h
-- 
GitLab