README 3.48 KB
Newer Older
---------------------------------------
Pasi Keranen's avatar
Pasi Keranen committed
Qt Canvas 3D 1.0.0 Technology Preview 2
---------------------------------------

Qt Canvas 3D 1.0 module provides a QtQuick canvas component that can be used to render
Pasi Keranen's avatar
Pasi Keranen committed
with WebGL-like API from QtQuick JavaScript.


System Requirements
===================

- Qt 5.3 or newer
- OpenGL 2.1 (or newer) or OpenGL ES2

Building
========
Configure the project with qmake:
    qmake

After running qmake, build the project with make:
    (Linux) make
    (Windows with MinGw) mingw32-make
    (Windows with Visual Studio) nmake
    (OSX) make

The above generates the default makefiles for your configuration, which is typically
the release build if you are using precompiled binary Qt distribution. To build both
debug and release, or one specifically, use one of the following qmake lines instead.

For debug builds:
    qmake CONFIG+=debug
    make
  or
    qmake CONFIG+=debug_and_release
    make debug

For release builds:
    qmake CONFIG+=release
    make
  or
    qmake CONFIG+=debug_and_release
    make release

For both builds (Windows/Mac only):
    qmake CONFIG+="debug_and_release build_all"
    make

After building, install the module to your Qt directory:
    make install

If you want to uninstall the module:
    make uninstall

Building as a statically linked library
=======================================

The same as above applies, you will just have to add static to the CONFIG:
    qmake CONFIG+=static

Documentation
=============

The documentation can be generated with:
    make docs

The documentation is generated into the doc folder under the build folder.
Both Qt Assistant (qtcanvas3d.qch) and in HTML format
(qtcanvas3d subfolder) documentation is generated.

Please refer to the generated documentation for more information:
    doc/qtcanvas3d/index.html

Known Issues
============
- QObject based TypedArray implementation is a temporary stop gap solution
  and will be removed from QtCanvas3D later on.
- Texturing does not work perfectly in all of the examples.
- Resizing window works incorrectly if viewport is updated during rendering to match
  the window size (try Framebuffer Example for reference).

Fixed/Changed from Technology Preview 1
=======================================
Pasi Keranen's avatar
Pasi Keranen committed
- All Canvas3D C++ classes have now been put to namespace to avoid clashes.
- Qt Creator wizard templates have been implemented and added.
- Crash when giving null pointer to texImage2D fixed.
- Antialiasing now works. It was broken due to quick fixes done to avoid crashing
  with dynamic OpenGL implementation loading in Qt 5.4.
- Frame submit order was mixed when antialiasing was turned on causing animations
  to appear juddering.
- checkAllErrors flag now means doing glGetError after each OpenGL API call,
  this causes negative performance impact, but now all issues related to invalid
  API use are printed to log.
- Support for OES_standard_derivatives extension has been added.
- Support for all the pixelstore related WebGL specific configurations added.
- FPS counter value added.
- Input and output objects are now wrapped as QJSValues. This has improved the
  performance a bit and also allows adding of custom attributes on the JavaScript
  side to the objects. Making porting of WebGL code easier to Canvas3D environment.
- These methods are now named according to the WebGL specification:
    uniform1fv
    uniform2fv
    uniform3fv
    uniform4fv
    uniform1iv
    uniform2iv
    uniform3iv
    uniform4iv
    vertexAttrib1fv
    vertexAttrib2fv
    vertexAttrib3fv
    vertexAttrib4fv