I'm working on a graphics project aimed at pocket pc's and I need a rendering solution that can run both on a PC and on CE. Forgive my ignorance, but from what I have read so far, it seems that Opengl ES is not terribly similar to OpenGL.
If I were wanting to run on PC's as well (not through the emulation system) am I going to be making two completely different sets of wrappers (one for OpenGL and one for OpenGL ES) or is there going to be a worthwhile percentage of overlap for the two interfaces?
I already have a software renderer that runs on both PC's and CE that I ported from an older project, however it is all floating point and converting it to fixed point is going to be a lot of work.
I'm trying to determine if OpenGL ES and OpenGL might better fit the bill.
Thanks for any suggestions.
One more question. The OpenGL software implementations I have seen typically are not able to do much better than 5FPS with a perspective-correct textured scene at 320x200 with the simplest lighting on hardware comparable to what's in today's pocket PC's.
Is OpenGL ES going to be able to hit that 15FPS mark?
Given that this is a 0.7 - and I think the "project milestones" shows you what I mean by that [i.e. I received the conformance test suite, but haven't set it up yet] you'll have to determine yourself if the relevant features are there. If you run the demo that comes in the download, you should get a good impression what kind of performance the current build will deliver. It really depends on the complexity of the scene and the hardware, of course. On my Toshiba e750, the demo delivers pretty stable 30fps [perspective corrected textured ~730 triangles], but 1/3 of that time is blitting the back buffer to screen, thanks to the lousy 2d hardware. In terms of missing features, you might want to review the bug list.
For using the same/similar API on desktop and Pocket PC, there is also a wrapper project http://sourceforge.net/projects/dogless/ that provides an ES API around any regular implementation of OpenGL 1.3 or higher. The biggest change for most user's coming from desktop OpenGL to ES is that glBegin/glEnd, display lists and the like are gone. Otherwise, OpenGL ES also provides floating point API entries. In this project, these API calls act as wrappers around the fixed point API.
What I've seen is that in most cases you will really want have convert the whole graphics engine from float to fixed, which would mean even more work. Assuming you are targeting the most common hardware without FPU.
Hope that helps a bit,
Log in to post a comment.