Android Port

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
digijohnny
Posts: 63
Joined: Sat Sep 12, 2009 6:08 pm
Contact:

Re: Android Port-SVN 4658

Post by digijohnny »

im currently using SVN-4658 on android n9b with a nexus 7 v2 GPU:Adreno200-ES11
my problem is, with OGLES2 i get touches working but no lighting or texture translations.
with OGLES1 i get lighting and texture translation but no touches, touches are triggering CIrrDeviceAndroid::handleAndroidCommand but the data is jibberish - mutlitouch count defaults to 6 when there is no touches on screen.

anyone else experiencing this or have a fix?
CuteAlien
Admin
Posts: 9734
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: Android Port

Post by CuteAlien »

@Neirdan: I switched to default size 0,0. If you work with Android NDK on Windows you should have cygwin installed (it's possible to run it without, but that's more complicated as you can't use the default build toolchain then).

I've also looked at fonts today - I guess the only solution is to use bigger fonts. I'm still having a little trouble figuring out how to get good sizes as this depends not just on the device resolution but also on the device size.

@digijohnny: Touch-input shouldn't be related to the driver (it's handled in the device). I fear I can't help with that yet (worked here with both drivers, so can't reproduce it, but I got no Nexus for testing).
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
ent1ty
Competition winner
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: Android Port

Post by ent1ty »

There should
CuteAlien wrote:@Neirdan: I switched to default size 0,0. If you work with Android NDK on Windows you should have cygwin installed (it's possible to run it without, but that's more complicated as you can't use the default build toolchain then)..
http://developer.android.com/tools/sdk/ndk/index.html
The NDK includes a set of cross-toolchains (compilers, linkers, etc..) that can generate native ARM binaries on Linux, OS X, and Windows (with Cygwin) platforms.
CuteAlien wrote:I've also looked at fonts today - I guess the only solution is to use bigger fonts. I'm still having a little trouble figuring out how to get good sizes as this depends not just on the device resolution but also on the device size.
Would be nice to add some method to the video driver to get device DPI.
irrRenderer 1.0
Height2Normal v. 2.1 - convert height maps to normal maps

Step back! I have a void pointer, and I'm not afraid to use it!
CuteAlien
Admin
Posts: 9734
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: Android Port

Post by CuteAlien »

ent1ty wrote:
CuteAlien wrote:I've also looked at fonts today - I guess the only solution is to use bigger fonts. I'm still having a little trouble figuring out how to get good sizes as this depends not just on the device resolution but also on the device size.
Would be nice to add some method to the video driver to get device DPI.
Right, DPI was the acronym I was looking for :-) Thanks.
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
Neirdan
Posts: 39
Joined: Tue Aug 14, 2012 10:29 pm

Re: Android Port

Post by Neirdan »

I tried to find a way to get the DPI throught the NDK but apparently it's not possible (or very well hidden).
So all that's possible is to rely on JNI.

http://stackoverflow.com/questions/1885 ... ndroid-ndk
http://stackoverflow.com/questions/1324 ... veactivity

I also think it would be a good thing to determine if we're on a tablet or on a phone, but I didn't find how to do it.

Also despite android devices having a very wide set of "real buttons", I think we could detect when a button is pressed, especially the "return" button.
Keep in mind that if this is allowed on android, it's strictly forbidden to alter button functions on iOS, so this might change on android as well. Also buttons tend to disappear.
CuteAlien
Admin
Posts: 9734
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: Android Port

Post by CuteAlien »

Yeah, I already coded accessing it through the JNI last week, just haven't checked in yet :-) Will do probably today. Although I'll just add it to the example for now as I'm not really sure yet if this really belongs in the Irrlicht engine (basically it belongs in the NDK... google is just lazy).

Not sure if table or phone really matter, it's all about screen-sizes and availble sensors.

Yeah - the taskbar buttons at the bottom like "return" should be checked. I haven't looked into that yet, but will do.

Another thing still missing is handling rotation.
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
Neirdan
Posts: 39
Joined: Tue Aug 14, 2012 10:29 pm

Re: Android Port

Post by Neirdan »

Tried the latest update, it works like a charm on my HTC One and on a virtual device.

With 2 friends we're about to start a mobile game using this branch, so I have a few questions:
-I noticed in the thread that someone did successfully compile on iOS, yet this thread is named "Android port" and not "OGLES branch".
-I have a mac with Xcode and an iPhone 5S, is someone doing the example 28 for iOS? If not, I'll do it based on the example 17 and removing useless stuff from the precompiler (all the #ifdef).
-Are sensors considered a part of Irrlicht engine or not? Of course they're not related to the render, but are they considered a part of the event receiver/handler?
-How can I make the button disappear? Is the button part of the native activity (= java stuff) ?

Lastly, we want to get involved into this branch development but we don't know "who does what". We have some Android/iOS experience and I'm the only one familiar with Irrlicht.
Nadro
Posts: 1648
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Re: Android Port

Post by Nadro »

This branch works with iOS, just go to source/Irrlicht/iOS and open project file in XCode. You can build example no. 17 via this project. Anyway if you want use this branch for iOS please update branch to rev4574. Newer revisions doesn't work properly on SDL, iOS and OSX (other devices like a Windows, Linux X11 and Android works properly in the latest rev). It will be fixed in near future (code related to EAGL). At this time please don't look too much at OGL problems related to this branch, because in short time OGL code will be totally changed here (we're working on unified structure for all OGL versions).
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
Neirdan
Posts: 39
Joined: Tue Aug 14, 2012 10:29 pm

Re: Android Port

Post by Neirdan »

I'm trying to implement bullet Physics into the android version and I'm pulling my hair on the Android.mk file.
Basically I point
LOCAL_C_INCLUDES := ../../include ../../../bullet-2.82-r2704/src
and LOCAL_SRC_FILES := main.cpp android_tools.cpp game.cpp gameCamera.cpp gameEventReceiver.cpp gameItem.cpp gamePhysics.cpp + all bullets .cpp files

yet I have errors while compiling bullet:

Code: Select all

make.exe: *** No rule to make target `jni/../../../../bullet-2.82-r2704/src/Bull
etDynamics/Dynamics/btContinuousDynamicsWorld.cpp', needed by `obj/local/armeabi
/objs-debug/ProjetRCDSM/__/__/__/bullet-2.82-r2704/src/BulletDynamics/Dynamics/b
tContinuousDynamicsWorld.o'.  Stop.
And once I remove btContinuousDynamicsWorld.cpp:

Code: Select all

[armeabi] SharedLibrary  : libProjetRCDSM.so
D:/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/
bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/l
d.exe: ./obj/local/armeabi/objs-debug/ProjetRCDSM/__/__/__/bullet-2.82-r2704/src
/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.o: in function btConv
exConvexAlgorithm::processCollision(btCollisionObjectWrapper const*, btCollision
ObjectWrapper const*, btDispatcherInfo const&, btManifoldResult*):jni/../../../.
./bullet-2.82-r2704/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorith
m.cpp:475: error: undefined reference to 'btPolyhedralContactClipping::findSepar
atingAxis(btConvexPolyhedron const&, btConvexPolyhedron const&, btTransform cons
t&, btTransform const&, btVector3&, btDiscreteCollisionDetectorInterface::Result
&)'
D:/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/
bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/l
d.exe: ./obj/local/armeabi/objs-debug/ProjetRCDSM/__/__/__/bullet-2.82-r2704/src
/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.o: in function btConv
exConvexAlgorithm::processCollision(btCollisionObjectWrapper const*, btCollision
ObjectWrapper const*, btDispatcherInfo const&, btManifoldResult*):jni/../../../.
./bullet-2.82-r2704/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorith
m.cpp:508: error: undefined reference to 'btPolyhedralContactClipping::clipHullA
gainstHull(btVector3 const&, btConvexPolyhedron const&, btConvexPolyhedron const
&, btTransform const&, btTransform const&, float, float, btDiscreteCollisionDete
ctorInterface::Result&)'
D:/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/
bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/l
d.exe: ./obj/local/armeabi/objs-debug/ProjetRCDSM/__/__/__/bullet-2.82-r2704/src
/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.o: in function btConv
exConvexAlgorithm::processCollision(btCollisionObjectWrapper const*, btCollision
ObjectWrapper const*, btDispatcherInfo const&, btManifoldResult*):jni/../../../.
./bullet-2.82-r2704/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorith
m.cpp:572: error: undefined reference to 'btPolyhedralContactClipping::clipFaceA
gainstHull(btVector3 const&, btConvexPolyhedron const&, btTransform const&, btAl
ignedObjectArray<btVector3>&, float, float, btDiscreteCollisionDetectorInterface
::Result&)'
D:/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/
bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/l
d.exe: ./obj/local/armeabi/objs-debug/ProjetRCDSM/__/__/__/bullet-2.82-r2704/src
/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.o: in functio
n btCompoundCompoundCollisionAlgorithm::CreateFunc::CreateCollisionAlgorithm(btC
ollisionAlgorithmConstructionInfo&, btCollisionObjectWrapper const*, btCollision
ObjectWrapper const*):../../../bullet-2.82-r2704/src/BulletCollision/CollisionDi
spatch/btCompoundCompoundCollisionAlgorithm.h:75: error: undefined reference to
'btCompoundCompoundCollisionAlgorithm::btCompoundCompoundCollisionAlgorithm(btCo
llisionAlgorithmConstructionInfo const&, btCollisionObjectWrapper const*, btColl
isionObjectWrapper const*, bool)'
D:/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/
bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/l
d.exe: ./obj/local/armeabi/objs-debug/ProjetRCDSM/__/__/__/bullet-2.82-r2704/src
/BulletCollision/CollisionShapes/btPolyhedralConvexShape.o: in function btConvex
HullComputer::compute(float const*, int, int, float, float):../../../bullet-2.82
-r2704/src/LinearMath/btConvexHullComputer.h:91: error: undefined reference to '
btConvexHullComputer::compute(void const*, bool, int, int, float, float)'
D:/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/
bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/l
d.exe: ./obj/local/armeabi/objs-debug/ProjetRCDSM/__/__/__/bullet-2.82-r2704/src
/BulletCollision/CollisionShapes/btPolyhedralConvexShape.o: in function btPolyhe
dralConvexShape::initializePolyhedralFeatures(int):jni/../../../../bullet-2.82-r
2704/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp:53: error:
undefined reference to 'btConvexPolyhedron::btConvexPolyhedron()'
D:/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/
bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/l
d.exe: ./obj/local/armeabi/objs-debug/ProjetRCDSM/__/__/__/bullet-2.82-r2704/src
/BulletCollision/CollisionShapes/btPolyhedralConvexShape.o: in function btPolyhe
dralConvexShape::initializePolyhedralFeatures(int):jni/../../../../bullet-2.82-r
2704/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp:315: error:
 undefined reference to 'btConvexPolyhedron::initialize()'
D:/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/
bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/l
d.exe: ./obj/local/armeabi/objs-debug/ProjetRCDSM/__/__/__/bullet-2.82-r2704/src
/BulletSoftBody/btSoftBody.o: in function PolarDecompose(btMatrix3x3 const&, btM
atrix3x3&, btMatrix3x3&):jni/../../../../bullet-2.82-r2704/src/BulletSoftBody/bt
SoftBodyInternals.h:618: error: undefined reference to 'btPolarDecomposition::bt
PolarDecomposition(float, unsigned int)'
D:/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/
bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/l
d.exe: ./obj/local/armeabi/objs-debug/ProjetRCDSM/__/__/__/bullet-2.82-r2704/src
/BulletSoftBody/btSoftBody.o: in function PolarDecompose(btMatrix3x3 const&, btM
atrix3x3&, btMatrix3x3&):jni/../../../../bullet-2.82-r2704/src/BulletSoftBody/bt
SoftBodyInternals.h:619: error: undefined reference to 'btPolarDecomposition::de
compose(btMatrix3x3 const&, btMatrix3x3&, btMatrix3x3&) const'
D:/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/
bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/l
d.exe: ./obj/local/armeabi/objs-debug/ProjetRCDSM/__/__/__/bullet-2.82-r2704/src
/BulletSoftBody/btSoftBody.o: in function PolarDecompose(btMatrix3x3 const&, btM
atrix3x3&, btMatrix3x3&):jni/../../../../bullet-2.82-r2704/src/BulletSoftBody/bt
SoftBodyInternals.h:620: error: undefined reference to 'btPolarDecomposition::DE
FAULT_TOLERANCE'
D:/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/
bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/l
d.exe: ./obj/local/armeabi/objs-debug/ProjetRCDSM/__/__/__/bullet-2.82-r2704/src
/BulletSoftBody/btSoftBody.o: in function PolarDecompose(btMatrix3x3 const&, btM
atrix3x3&, btMatrix3x3&):jni/../../../../bullet-2.82-r2704/src/BulletSoftBody/bt
SoftBodyInternals.h:620: error: undefined reference to 'btPolarDecomposition::DE
FAULT_MAX_ITERATIONS'
collect2: ld returned 1 exit status
make.exe: *** [obj/local/armeabi/libProjetRCDSM.so] Error 1
I'm quite new to the whole *.mk makefiles, I don't really know how to fix it.
I checked how the proton SDK makes this, I also stumbled upon http://renzhi.ca/2011/05/19/programming ... et-part-1/ and http://www.codexperiments.com/android/2 ... f-android/ but every solution is so much different from the other one, I couldn't figure what was wrong.


Android.mk

Code: Select all

 
LOCAL_PATH := $(call my-dir)/..
IRRLICHT_PROJECT_PATH := $(LOCAL_PATH)
 
include $(CLEAR_VARS)
LOCAL_MODULE := Irrlicht
LOCAL_SRC_FILES := $(IRRLICHT_PROJECT_PATH)/../../lib/Android/libIrrlicht.a
include $(PREBUILT_STATIC_LIBRARY)
 
include $(CLEAR_VARS)
 
LOCAL_MODULE := ProjetRCDSM
 
LOCAL_CFLAGS := -D_IRR_ANDROID_PLATFORM_ -pipe -fno-exceptions -fno-rtti -fstrict-aliasing
 
ifndef NDEBUG
LOCAL_CFLAGS += -g -D_DEBUG
else
LOCAL_CFLAGS += -fexpensive-optimizations -O3
endif
 
ifeq ($(TARGET_ARCH_ABI),x86)
LOCAL_CFLAGS += -fno-stack-protector
endif
 
BULLET := ../../../bullet-2.82-r2704/src
 
LOCAL_C_INCLUDES := ../../include $(BULLET)
 
LOCAL_SRC_FILES := main.cpp android_tools.cpp game.cpp gameCamera.cpp gameEventReceiver.cpp gameItem.cpp gamePhysics.cpp $(BULLET)/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp \
    $(BULLET)/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp \
    $(BULLET)/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp \
    $(BULLET)/BulletCollision/BroadphaseCollision/btDbvt.cpp \
    $(BULLET)/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp \
    $(BULLET)/BulletCollision/BroadphaseCollision/btDispatcher.cpp \
    $(BULLET)/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp \
    $(BULLET)/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp \
    $(BULLET)/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp \
    $(BULLET)/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btBoxBoxDetector.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btCollisionObject.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btCollisionWorld.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btGhostObject.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btInternalEdgeUtility.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btManifoldResult.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/btUnionFind.cpp \
    $(BULLET)/BulletCollision/CollisionDispatch/SphereTriangleDetector.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btBoxShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btBox2dShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btCapsuleShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btCollisionShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btCompoundShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btConcaveShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btConeShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btConvexHullShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btConvexInternalShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btConvexPointCloudShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btConvexShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btConvex2dShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btCylinderShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btEmptyShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btMinkowskiSumShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btMultiSphereShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btOptimizedBvh.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btShapeHull.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btSphereShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btTetrahedronShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btTriangleBuffer.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btTriangleCallback.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btTriangleMesh.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp \
    $(BULLET)/BulletCollision/CollisionShapes/btUniformScalingShape.cpp \
    $(BULLET)/BulletCollision/Gimpact/btContactProcessing.cpp \
    $(BULLET)/BulletCollision/Gimpact/btGenericPoolAllocator.cpp \
    $(BULLET)/BulletCollision/Gimpact/btGImpactBvh.cpp \
    $(BULLET)/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp \
    $(BULLET)/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp \
    $(BULLET)/BulletCollision/Gimpact/btGImpactShape.cpp \
    $(BULLET)/BulletCollision/Gimpact/btTriangleShapeEx.cpp \
    $(BULLET)/BulletCollision/Gimpact/gim_box_set.cpp \
    $(BULLET)/BulletCollision/Gimpact/gim_contact.cpp \
    $(BULLET)/BulletCollision/Gimpact/gim_memory.cpp \
    $(BULLET)/BulletCollision/Gimpact/gim_tri_collision.cpp \
    $(BULLET)/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.cpp \
    $(BULLET)/BulletCollision/NarrowPhaseCollision/btConvexCast.cpp \
    $(BULLET)/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.cpp \
    $(BULLET)/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp \
    $(BULLET)/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.cpp \
    $(BULLET)/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp \
    $(BULLET)/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.cpp \
    $(BULLET)/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp \
    $(BULLET)/BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp \
    $(BULLET)/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.cpp \
    $(BULLET)/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp \
    $(BULLET)/BulletDynamics/Character/btKinematicCharacterController.cpp \
    $(BULLET)/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp \
    $(BULLET)/BulletDynamics/ConstraintSolver/btContactConstraint.cpp \
    $(BULLET)/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp \
    $(BULLET)/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp \
    $(BULLET)/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp \
    $(BULLET)/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp \
    $(BULLET)/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp \
    $(BULLET)/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp \
    $(BULLET)/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp \
    $(BULLET)/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.cpp \
    $(BULLET)/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp \
    $(BULLET)/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp \
    $(BULLET)/BulletDynamics/Dynamics/btContinuousDynamicsWorld.cpp \
    $(BULLET)/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp \
    $(BULLET)/BulletDynamics/Dynamics/btRigidBody.cpp \
    $(BULLET)/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp \
    $(BULLET)/BulletDynamics/Dynamics/Bullet-C-API.cpp \
    $(BULLET)/BulletDynamics/Vehicle/btRaycastVehicle.cpp \
    $(BULLET)/BulletDynamics/Vehicle/btWheelInfo.cpp \
    $(BULLET)/LinearMath/btAlignedAllocator.cpp \
    $(BULLET)/LinearMath/btConvexHull.cpp \
    $(BULLET)/LinearMath/btGeometryUtil.cpp \
    $(BULLET)/LinearMath/btQuickprof.cpp \
    $(BULLET)/LinearMath/btSerializer.cpp \
        $(BULLET)/BulletSoftBody/btDefaultSoftBodySolver.cpp \
        $(BULLET)/BulletSoftBody/btSoftBody.cpp \
        $(BULLET)/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.cpp \
        $(BULLET)/BulletSoftBody/btSoftBodyHelpers.cpp \
        $(BULLET)/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp \
        $(BULLET)/BulletSoftBody/btSoftRigidCollisionAlgorithm.cpp \
        $(BULLET)/BulletSoftBody/btSoftRigidDynamicsWorld.cpp \
        $(BULLET)/BulletSoftBody/btSoftSoftCollisionAlgorithm.cpp
 
LOCAL_LDLIBS := -lEGL -llog -lGLESv1_CM -lGLESv2 -lz -landroid
 
LOCAL_SHARED_LIBRARIES := mystlport
 
LOCAL_STATIC_LIBRARIES := Irrlicht android_native_app_glue
 
include $(BUILD_SHARED_LIBRARY)
 
$(call import-module,android/native_app_glue)
 
Nadro
Posts: 1648
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Re: Android Port

Post by Nadro »

Use different makefile for bullet. This errors show that compiler can't find bullet files.
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
skygong21
Posts: 3
Joined: Fri Feb 07, 2014 6:57 am

Re: Android Port

Post by skygong21 »

I seem to get a million different errors trying to make this work. Right now I have this error
GLES/gl.h: No such file or directory compilation terminated.

when clearly there is a GLES folder copy pasted in the directory, and all enivironments seemingly set. Some sort of linking error I assume, I'm not sure. Sure could use some help.

here's my PATH
/usr/local/bin:/usr/bin:/bin:/usr/games:/home/MYNAME/bin:/usr/local/java/jdk1.7.0_51/bin:/usr/include:/usr/share/ant/bin:/home/MYNAME/Development/sdk/platform-tools:/home/MYNAME/Development/ndk:/home/MYNAME/Development/sdk/tools:
I'm on Ubuntu 12.04 x64 and using the code from http://gitorious.org/irrlichtandroid/. I've decided to use the ogl-es 1 instead of 2 and commented out the define in IrrCompileConfig. I've also fixed the string error in os.h. changed the CXXINCS as mentioned in the wiki. Also changed the target to android-8.

Thanks, also I know that ant install wont work after this. because there is no ant.SetUpTask. Could use a fix for that too

EDIT: also using NDK_r9c, ant 1.8.2, Java 1.7.0_51
also let me get this clear.....
If everything works, the steps are as following right?
ndk-build -> make APP=irrlicht -> ant clean install -> adb install <proj.dir>/bin <projname>.apk
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Re: Android Port

Post by hybrid »

You should use the official Irrlicht ogl-es branch instead, as this gets many updates. There's also an example for a properly set-up example.
skygong21
Posts: 3
Joined: Fri Feb 07, 2014 6:57 am

Re: Android Port

Post by skygong21 »

Hey hybrid, could I get a link to that please?
ent1ty
Competition winner
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: Android Port

Post by ent1ty »

irrRenderer 1.0
Height2Normal v. 2.1 - convert height maps to normal maps

Step back! I have a void pointer, and I'm not afraid to use it!
skygong21
Posts: 3
Joined: Fri Feb 07, 2014 6:57 am

Re: Android Port

Post by skygong21 »

Hey. Sorry I'm a bit of a newby here (huge understatement). So I got the official versioin and it makes without a problem now (numerous warnings). I got chucked in the fire here by my boss, never did any Java, or Irrlicht or any sort of 3D engine or porting. But never the less 'I gotta do what I gotta do'. Is there like some example codes of getting the Irrlicht examples working on android?

Thanks a bunch. I look like poop atm.... haven't slept for something like ~30 hours
Post Reply