OpenGL / vtk for Nokia mobile devices



  • I am interested in developing 3D software for Nokia mobile devices.

    Is it possible to use OpenGL or vtk with the NokiaQtSDK (QtCreator)?

    Has anyone tried to use vtk for mobile devices? (http://www.vtk.org) What is the right way to compile vtk for Nokia mobile devices?
    If this is possible, would it be better to use vtk with Java?

    Any help would be appreciated.
    Thank you.



  • The Nokia N900 has OpenGL ES support and can be used via Qt's QGLWidget class. The Symbian^3 devices also support OpenGL ES, but you need Qt 4.7.x for QGLWidget support which is available in the QtSDK 1.1 Beta.

    I am not overly familiar with VTK, but if it works with OpenGL ES, then I would think it should be possible to use it on Nokia mobiles as well.



  • I'm using the QtSDK 1.1 Beta and can't put OpenGL to work, when compiling, it doesn't recognise any OpenGL functions. I have a Nokia C7 for test. I will put more info from the error later, since I'm not at my development PC right now.



  • Did you add:

    @QT += opengl@

    To your .pro file?



  • Yes, I did.



  • My project works ok for desktop target but for symbian^3 target OpenGL doesnt work, simple OpenGL functions are not recognzed

    Does anybody put to work OpenGL ES for symbian with QtSdk1.1 beta ?

    @sbs: build log in C:\QtSDK\Symbian\SDKs\Symbian3Qt472\epoc32\build\Makefile.2011-03-17-01-08-40.11-8132.log

    FAILED compile for arm.v5.urel.gcce4_4_1: graph2Dwidget\glgraph.cpp
    mmp: MathGraphica_exe.mmp
    mingw32-make[1]: *** [C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/build/mathgraphica2dwidgetopengl/c_ed8c513316bef40c/MathGraphica_exe/armv5/urel/glgraph.o] Error 1
    mingw32-make[1]: *** Waiting for unfinished jobs....
    sbs: error: The make-engine exited with errors.
    C:\QtSDK\Symbian\SDKs\Symbian3Qt472\epoc32\tools\make.exe: Leaving directory `C:/nokiaqtapps/MathGraphica2DWidgetOpenGL'
    C:\QtSDK\Symbian\SDKs\Symbian3Qt472\epoc32\tools\make.exe: *** [release-gcce] Error 1
    The process "C:\QtSDK\Symbian\SDKs\Symbian3Qt472\epoc32\tools\make.exe" exited with code 2.
    Error while building project MathGraphica (target: Symbian Device)
    When executing build step 'Make'@



  • Hi,

    i have the same problem!

    I test also hello_opengles and hello_opengles2 and with symbian^3 target OpenGL function are not recognized too.

    If i put in .pro file:

    @
    DEFINES += QT_OPENGL_ES_1
    @

    then the app build with no error but the error is moved to linkandpostlink phase, with all
    OpenGL function

    @
    .....
    C:/BubbleTouchQt/glviewer.cpp:97: undefined reference to glMatrixMode' C:/BubbleTouchQt/glviewer.cpp:100: undefined reference toglLoadIdentity'
    C:/BubbleTouchQt/glviewer.cpp:102: undefined reference to glOrthof' C:/BubbleTouchQt/glviewer.cpp:104: undefined reference toglMatrixMode'
    C:/BubbleTouchQt/glviewer.cpp:105: undefined reference to `glLoadIdentity'
    ....
    @

    Maybe there is a problem with the libs, in the output i found:

    @
    C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/release/armv5/lib/QtOpenGL.dso C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/release/armv5/lib/libGLESv2.dso C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/release/armv5/lib/libEGL.dso
    @

    Anyone can compile hello_opengles and hello_opengles2 in a Symbian^3 device?

    I'm using the last Qt SDK 1.1 beta on a Windows XP Virtual Machine (i'm work with macosx
    and the remote compiler give the same error too.)



  • Hi,

    QtOpenGL is compiled with OpenGL ES 2.0 support so it's no surprise that you get link errors when trying to use OpenGL ES 1.x. Can you try compiling without adding QT_OPENGL_ES_1 to the DEFINES? Kindly paste any errors you receive here.

    I tried compiling 'hellogl_es2' on my copy of the SDK and it worked fine for me.



  • As you mention you have Nokia C7,,It contains Qt 4.6.3 inbuilt.

    To run the application which built using Qt 4.7.X beta 1.1,,you should install the sis files available with it.

    qt_installer.sis
    qt_webkit.sis

    That is available in your setup of C drive and in Nokia Qt SDK 1.1..



  • In my case I only put the QT += opengl, and not the DEFINES += QT_OPENGL_ES_1 in the .pro file. I did a rebuild all without the phone C7 connect, just to create the .sis, didnt work. OpenGL functions are not recognized, it would really be great if you could help with this.
    Thank you



  • As I know Qt 4.7.1 and higher versions supports all OpenGL functions.
    Show the full errors.



  • Thanks for your replay. I now first installed qt.sis and qtwebkit.sis from 4.7.2. Run the project with the phone C7 connect, and still doesnt work, the errors:

    @Running build steps for project testeOpenGL...
    Configuration unchanged, skipping qmake step.
    Starting: "C:\QtSDK\Symbian\SDKs\Symbian3Qt472\epoc32\tools\make.exe" release-gcce -w
    C:\QtSDK\Symbian\SDKs\Symbian3Qt472\epoc32\tools\make.exe: Entering directory `C:/nokiaqtapps/testeOpenGL'
    sbs -c arm.v5.urel.gcce4_4_1
    compile : widgl.cpp [arm.v5.urel.gcce4_4_1]
    In file included from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/e32cmn.h:1114,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/e32std.h:25,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtCore/qatomic_symbian.h:46,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtCore/qatomic_arch.h:86,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtCore/qbasicatomic.h:227,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtCore/qatomic.h:46,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtCore/qbytearray.h:45,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtCore/qstring.h:46,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtCore/qobject.h:48,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtGui/qwidget.h:46,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtOpenGL/qgl.h:45,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtOpenGL/QGLWidget:1,
    from C:/nokiaqtapps/testeOpenGL/widgl.h:4,
    from C:/nokiaqtapps/testeOpenGL/widgl.cpp:1:
    C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/e32des8.h:224: note: the mangling of 'va_list' has changed in GCC 4.4
    In file included from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/e32cmn.h:6794,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/e32std.h:25,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtCore/qatomic_symbian.h:46,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtCore/qatomic_arch.h:86,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtCore/qbasicatomic.h:227,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtCore/qatomic.h:46,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtCore/qbytearray.h:45,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtCore/qstring.h:46,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtCore/qobject.h:48,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtGui/qwidget.h:46,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtOpenGL/qgl.h:45,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtOpenGL/QGLWidget:1,
    from C:/nokiaqtapps/testeOpenGL/widgl.h:4,
    from C:/nokiaqtapps/testeOpenGL/widgl.cpp:1:@



  • @C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/e32cmn.inl: In member function 'SSecureId::operator const TSecureId&() const':
    C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/e32cmn.inl:7109: warning: returning reference to temporary
    C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/e32cmn.inl: In member function 'SVendorId::operator const TVendorId&() const':
    C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/e32cmn.inl:7149: warning: returning reference to temporary
    In file included from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/stdapis/stlportv5/stl/_num_put.h:194,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/stdapis/stlportv5/stl/_ostream.c:26,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/stdapis/stlportv5/stl/_ostream.h:385,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/stdapis/stlportv5/stl/_string_io.h:23,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/stdapis/stlportv5/string:38,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtCore/qstring.h:60,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtCore/qobject.h:48,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtGui/qwidget.h:46,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtOpenGL/qgl.h:45,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtOpenGL/QGLWidget:1,
    from C:/nokiaqtapps/testeOpenGL/widgl.h:4,
    from C:/nokiaqtapps/testeOpenGL/widgl.cpp:1:
    C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/stdapis/stlportv5/stl/_num_put.c: In function '_OutputIter stlp_priv::__copy_integer_and_fill(const _CharT*, ptrdiff_t, _OutputIter, int, std::streamsize, _CharT, _CharT, _CharT)':
    C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/stdapis/stlportv5/stl/_num_put.c:162: warning: suggest parentheses around '&&' within '||'
    In file included from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/stdapis/stlportv5/stl/_istream.h:355,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/stdapis/stlportv5/stl/_string_io.h:27,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/stdapis/stlportv5/string:38,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtCore/qstring.h:60,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtCore/qobject.h:48,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtGui/qwidget.h:46,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtOpenGL/qgl.h:45,
    from C:/QtSDK/Symbian/SDKs/Symbian3Qt472/include/QtOpenGL/QGLWidget:1,
    from C:/nokiaqtapps/testeOpenGL/widgl.h:4,
    from C:/nokiaqtapps/testeOpenGL/widgl.cpp:1:
    C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/stdapis/stlportv5/stl/_istream.c: In function 'std::streamsize stlp_priv::__read_buffered(std::basic_istream<_CharT, _Traits>, std::basic_streambuf<_CharT, _Traits>, std::streamsize, _CharT*, _Is_Delim, _Scan_Delim, bool, bool, bool)':
    C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/include/stdapis/stlportv5/stl/_istream.c:650: warning: suggest parentheses around '&&' within '||'
    C:/nokiaqtapps/testeOpenGL/widgl.cpp: In member function 'virtual void widGL::paintGL()':
    C:/nokiaqtapps/testeOpenGL/widgl.cpp:28: error: 'glTranslated' was not declared in this scope
    C:/nokiaqtapps/testeOpenGL/widgl.cpp:30: error: 'glScaled' was not declared in this scope
    C:/nokiaqtapps/testeOpenGL/widgl.cpp: In member function 'virtual void widGL::resizeGL(int, int)':
    C:/nokiaqtapps/testeOpenGL/widgl.cpp:58: error: 'glOrtho' was not declared in this scope
    C:/nokiaqtapps/testeOpenGL/widgl.cpp:60: error: 'glOrtho' was not declared in this scope
    C:/nokiaqtapps/testeOpenGL/widgl.cpp: In member function 'void widGL::axis2D()':
    C:/nokiaqtapps/testeOpenGL/widgl.cpp:72: error: 'glColor3d' was not declared in this scope
    C:/nokiaqtapps/testeOpenGL/widgl.cpp:77: error: 'glBegin' was not declared in this scope
    C:/nokiaqtapps/testeOpenGL/widgl.cpp:78: error: 'glVertex3d' was not declared in this scope
    C:/nokiaqtapps/testeOpenGL/widgl.cpp:80: error: 'glEnd' was not declared in this scope

    sbs : warnings: 0
    sbs : errors: 3

    built 'arm.v5.urel.gcce4_4_1'

    Run time 21 seconds

    sbs: build log in C:\QtSDK\Symbian\SDKs\Symbian3Qt472\epoc32\build\Makefile.2011-03-21-18-47-28.18-3544.log

    FAILED compile for arm.v5.urel.gcce4_4_1: widgl.cpp
    mmp: testeOpenGL_exe.mmp
    mingw32-make[1]: *** [C:/QtSDK/Symbian/SDKs/Symbian3Qt472/epoc32/build/testeopengl/c_a3d2663ed3fe53e9/testeOpenGL_exe/armv5/urel/widgl.o] Error 1
    sbs: error: The make-engine exited with errors.
    C:\QtSDK\Symbian\SDKs\Symbian3Qt472\epoc32\tools\make.exe: *** [release-gcce] Error 1
    C:\QtSDK\Symbian\SDKs\Symbian3Qt472\epoc32\tools\make.exe: Leaving directory `C:/nokiaqtapps/testeOpenGL'
    The process "C:\QtSDK\Symbian\SDKs\Symbian3Qt472\epoc32\tools\make.exe" exited with code 2.
    Error while building project testeOpenGL (target: Symbian Device)
    When executing build step 'Make'@



  • This is getting horse. After the upgrade to qt.sis 4.7.2, other Qt app is so slow. :(
    It's possible to revert it ? Can't find a way to remove it in the installation manager.



  • Ya,,Once it is installed it is not visible in the installation manager.

    And one more thing it takes time to launch.



  • If someone is interested nice article in forum nokia wiki:

    http://wiki.forum.nokia.com/index.php/How_to_utilise_OpenGL_ES_2.0_on_Symbian^3_and_Maemo


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.