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.
-
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 toglMatrixMode' C:/BubbleTouchQt/glviewer.cpp:100: undefined reference to
glLoadIdentity'
C:/BubbleTouchQt/glviewer.cpp:102: undefined reference toglOrthof' C:/BubbleTouchQt/glviewer.cpp:104: undefined reference to
glMatrixMode'
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.sisThat 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 -
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 scopesbs : warnings: 0
sbs : errors: 3built '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'@ -
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