Limitations of OpenGL ES


Capn_Fish

Member
Joined
Oct 12, 2008
Messages
200
First off, yes I did search, and yes I did look at the official page (not too carefully, however). If I missed something, at least I tried.

Anyway, is there a concise list of differences between OpenGL and OpenGL ES/what functions were taken out? I've been learning OpenGL for a while now, and want to know what new things I need to learn/learn to code around to make my code run on the Pandora.

Thanks.
 
The OpenGL ES spec itself is what you're looking for. The document is relative to the "full" OpenGL spec, and therefore contains the differences between the two.
 
From a quick glance, it appears the main differences are:

-No glBegin/glEnd (this'll take some getting used to)
-Only commands like gl**f and gl**i are supported
-No display list (seems like a big thing to leave out, from what I've read on OpenGL)
-No Quads/polygons
-More things that I haven't gotten to in OpenGL yet (could prove to be difficult)

I guess it's less different than I thought (I was worried it would be kind of a WM/WinCE vs Windows thing...). The whole new vertex thing will be interesting, though.

Thanks. I thought those docs were just a collection of "legalese"
 
Capn_Fish said:
-No glBegin/glEnd (this'll take some getting used to)

Not really ... hardly anyone does Immediate Mode when doing any performace sensitive stuff.

Capn_Fish said:
-No Quads/polygons
Nobody needs stinkin' quads :)


The bottom line is that the biggest change is lack of fixed function pipeline.
In other words you will have to write your own shaders which is just as good because that's what you want to do anyway given the new hardware :)
 
gl es 1.x and gl es 2.x present changes that should've been adopted by the desktop counterpart a long time ago.

basically, the embedded version of gl does many things right just by dropping tons of dead weight; same has not been 'trimmed' from the desktop due to the state of deadlock the gl ecosystem has effectively been in (too many parties' vested interests). as there is no status quo to preserve on the handhelds, the es design has had the utterly-rare-in-gl-terms chance to a (somewhat) clean slate. be grateful (unless you're porting something from a desktop).
 
Could somebody explain how things get drawn if you're not using immediate mode and there are no display lists? I apologize if this is obvious, but those are the only two drawing methods I can recall reading about/using.

Also, what are these shaders and fixed function pipeline (is that related to display lists)?

I'm trying to get a handle on what to use before I actually start coding something that I might want to use on the Pandora. If it's true that ES is the best parts of OpenGL, I'm all for just doing my code the ES way so I don't have to port it.

Thanks all for your helpful replies!
 
Capn_Fish said:
Could somebody explain how things get drawn if you're not using immediate mode and there are no display lists?
you use vertex arrays, either:
* from client space - simpler for the client to work with, but sub-optimal for the GPU, or
* from server space - somewhat more tricky - involves an elaborate buffering scheme - but GPU-optimal.

Also, what are these shaders and fixed function pipeline (is that related to display lists)?
currently gl shaders replace two previously-fixed-functionality stages in the pipeline:
* vertex computations and
* texture-stages computations & blending (but not frame-buffer blending).

http://en.wikipedia.org/wiki/Shader

If it's true that ES is the best parts of OpenGL, I'm all for just doing my code the ES way so I don't have to port it.
in general you can use the same techniques that es employs in your desktop work too. actually, it's highly recommended to use them if you care about performance.
 
Back
Top