Does anybody already has tested the platform with which this SDK works ?
this SDK is designed using C++ and only standard C libraries. So it should run on each platform which supports:
- Standard Ansi C Library
- OpenGL ES
I have tested the SDK on Windows and it should also run with the same code on Windows CE. Also, I compiled the SDK using the Nokia Symbian SDK and did run a sample program on the emulator.
Please note that this is a work in progress (e.g. fixed point math is in development) and it is far from be complete.
Do you have a specific hardware target in mind to be tested?
I'm trying to run the sample00 on Nokia Symbian SDK. In this sample, the cube.ms3d is loaded and rendered.
However, I only see black screen. I tried to render a simple triangle. It works. So the problem should be with the model.
I'm new to Symbian programming. Could you tell me where I should put the model file so that the Loader can find it?
the problem is, that the loader does not find the cube.ms3d file.
Please have a look at the MainS60.cpp file and search for Loader::setSearchPath(buffer);
There you can set the search path the loader should look for binary data. If you are
just working on the emulator, you can hard code your path. When using your emulator on windows,
this can be any windows path where you stored the binary data.
PS: The path which is used in the sample is the 'Others' path located on the memory card. You can also simulate this drive on your windows machine. Debug the code and check, which drive the SDK sees as its memory card drive. Create such a directory, share it and map it with the letter drive you seen when debugging the code. Finally copy the binaries into this directory.
Thanks for your quick reply!
In MainS60.cpp, I've changed the search path to C:\\
Then I copy the cube.ms3d to my SDK directory <SDK install dir>\epoc32\winscw\c,
However, it still doesn't work. So I suspect that the fopen will open the file
not on the emulator's file system but on the real file system. So I copied the cube.ms3d
to c:\. Then it works!
So in order to use the emulator's file system, do I need to call the symbian file manipulation API instead of the libc routine "fopen"?
you can still use fopen and the other functions defined in stdio.h on the emulator and on a target device (I've tested the code on a Nokia N93).
The only thing is, as far as I can remember, changing the directory with the Symbian SDK does not affect the directory where fopen is operating. What I do is gathering the absolute path and use
this path with fopen. This works both for the emulator and more important, also for the target device.
You can also gather the installion directory (as far as I know) of your installed program. Of course you can store the binaries there (which is normally done with the SIS file) and set the search path to this directory. This should work as well.
one more thing:
For example, in the SDK sample code, I am gathering the memory cards drive and path. Both, on the emulator and the target device, it is e:. The problem is, that the Symbian SDK is not using the emulators file system. It is using the windows file system.
I think it is an issue with the libc library from Symbian. But this "feature" or "bug" can be worked around as also mentioned in my previous mail: Just map a directory as e: and both code works fine on the emulator and the target device.
Finally I've figured out what's wrong with the fopen.
If the project is not linked with estlib.lib(standard c lib on symbian), fopen works to some extent and read from the local hard disk as it is.
If the project is linked with the estlib.lib, fopen works as documented. It treats epoc32\winscw\c as C:\.
Thanks for your kind help.
BTW, recently I've been porting irrlicht graphics engine on Symbian. I used your MainS60.cpp in my project. Could I continue to use it?
thanks for the note regarding fopen. This will save me time ;-)
Of course you can use the MainS60.cpp for any project - commercial or non commercial.
Please guide me how to use ES3D with Symbian Emulator.
can you please send me an email to email@example.com?
I will then send you my Symbian project files and tell
you how to use the ES 3D Game SDK with Symbian.
I did send the necessary files to your Sourceforge email address.
I have compiled ES 3D 0.4.2 and tried to run the samples with Symbian emulator version S60_3rd_FP2 . Here is the test report... :-)
Sample00 -->works fine
Sample01 -->works fine
Sample02 -->CreateBoundingSphere() panics ... if you try to comment if modelManagerf::getModelf() for dwarf2 panics . if you load dwarf2 first then getModelf() for dwarf2 panics
Sample03 -->CreateBoundingSphere() panics.... if you comment it it want panic...
Sample04 -->Works just fine as it doesn't have CreateBoundingSphere() call
Sample05 --> only moving light i can see ... and not the terrain
Sample06 --> Only black screen i can see
Sample07 --> Terrain is seen but black and white
Sample08 --> Terrain is seen but black and white , clouds are also not seen instead white wash....
FYI, I compiled the SDK and aCosF() calls in SkyDome had to be replaced by aCos()calls...
Also ROAM classes were not compiling as few #include missing,
see my answer in the root discussion group.
Log in to post a comment.