-1

I've searched for some tutorials for OpenGL ES 1.1 in order to be able to write a little demo app on an ARM 11 eva board; the problem I'm facing is that all what I'm finding is for iOS or Android or something using GLUT. I would like something "pure" OpenGL ES 1.1.

Thank you!

artless noise
  • 21,212
  • 6
  • 68
  • 105
emmerich
  • 512
  • 1
  • 5
  • 14
  • I'm not sure this can be answered without more detail about the specific ARM CPU, possibly the board itself, as well as what operating system is running on the board. GLUT is just one way of abstracting the setup "housekeeping" out of the way so you can start using the OpenGL api. "Pure" OpenGL ES api by itself won't have content that's ARM specific. – Digikata Oct 12 '12 at 06:55
  • Well, let's say that I need to write a little demo which contains only OpenGL ES 1.1 libs and nothing else like GLUT; platform independent. – emmerich Oct 12 '12 at 07:15
  • @emmerich: Well, you can't do it completely plattform independent. ARM is just a CPU architecture, but there are great variations between systems. Are you targeting a NVidia Tegra or do you aim for a TI OMAP/Sitara with PowerVR core? Furthermore which operating system do you target? iOS? Android? Linux+X11? Linux+EGL? – datenwolf Oct 12 '12 at 09:05
  • @datenwolf: ARM11, something like this: http://bit.ly/UPAFsU with Linux 2.6, no X, straight to framebuffer – emmerich Oct 12 '12 at 11:14

1 Answers1

0

ARM is just a instruction set (there's no ARMv11 instruction set BTW – the core is not that much important for programming (EDIT here)). What you're dealing with is a SoC with some unspecified 3D accelerator. Also there's no documentation on the GPUs programming model, and there are no driver packages for it on the ST webpage. This basically means that you're more or less out of luck.

OpenGL(-ES) is just an API specification, i.e. written text. One needs an actual working implementation of it. This is called a driver. Now you're surely using some already existing product. The vendor of this product will have integrated some operating system, drivers and libraries and maybe offers a SDK for this (or not). Whatever you're going to program, it must fit into this infrastructure. And if this infrastructure offers OpenGL-ES, then there will be probably some variant of EGL to create a OpenGL-ES context on the framebuffer.

Note that if you're rendering directly to the framebuffer without GPU support, i.e. software rasterizer, then you can use Mesa3D and its variant of EGL. But given the fact that you're running on a rather slow platform the performance will suck.

If you want to code for an embedded platform with fair GPU support I suggest going for TI Sitara/OMAP systems. TI offers binary OpenGL-ES driver packages for the PowerVR cores in them.

datenwolf
  • 159,371
  • 13
  • 185
  • 298
  • Yes, indeed I do have EGL available; I got from them a simple example of a pyramid rotating around but I would like to do a bit more and maybe somehow get a 3D model generated in Blender to be exported and used in a demo app. I still have to dig around... – emmerich Oct 12 '12 at 12:48
  • @emmerich: Well if you got a working EGL example, then you're all set. Just replace the drawing code of that pyramid with whatever you desire. The tricky part is getting a EGL context. Once you got *that* you can just use OpenGL-ES and be done with it. – datenwolf Oct 12 '12 at 13:17
  • The tricky part for me now it seems to be the "just use OpenGL-ES" since I don't have any experience with it so far; I got an idea looking over the internet to export a 3D object fom blender into OpenGL ES and run the demo; do you know anything about that, or something similar since I don't know how to create an object directly? Thank you! – emmerich Oct 12 '12 at 13:38
  • @emmerich: OpenGL and OpenGL-ES have no notion about "objects", all they do is draw fancy points, lines and triangle to the screen, and that's about it. For you one distinction is important: Do you deal with OpenGL-ES 1 or OpenGL-ES 2? The former employs a fixed function pipline, while the other mandates shaders. –– Regarding the learning experience I suggest you first learn how to use regular OpenGL on the desktop, this makes thing much, much easier when it comes to embedded. I recommend the tutorial by Nicol Bolas found at http://arcsynthesis.org/gltut/ – much of OpenGL-ES 2 is very similar. – datenwolf Oct 12 '12 at 13:56
  • OpenGL ES 1.1; thank you very much! – emmerich Oct 12 '12 at 14:08
  • What do you mean there's no arm11!? http://www.arm.com/products/processors/classic/arm11/index.php – James Greenhalgh Oct 12 '12 at 14:09
  • As far as I've looked there were some scripts which exported a 3D Blender object into a objective-c .h file; there there were plenty of structs defined which as far as I've understood represented the object in vertices. The only thing left would have been to use those structs in my demo I guess. – emmerich Oct 12 '12 at 14:42
  • @JamesGreenhalgh: I was thinking about the instruction set. And (you proofed me wrong) I was under the impression that ARM did stop their numbering scheme and went for the catchy Cortex-… naming scheme for some time now; TBH I did enter the whole ARM embedded development thing only after XScale existed, so it's mostly Cortex-… and the instruction set version for me. – datenwolf Oct 12 '12 at 14:51