It works. I do it on every game :) Just be careful about the matrix stack and you'll be fine.
On Jun 28, 12:16 pm, Navigateur <[email protected]> wrote: > Many many many thanks. I'll get back to you whether it works or not. I > was still in projection matrix mode (and not modelview) before drawing > the 2D stuff (from the OpenGL FAQ for drawing 2D controls). I'll tell > you whether modelview works or not. Nightwolf - thanks, yeah I forgot > to mention I did try that. > > On Jun 28, 5:10 pm, Robert Green <[email protected]> wrote: > > > > > Here's the standard method for a 3D game w/2D controls: > > > onSurfaceChanged: > > this means you have a new GL context so it's a fresh state machine > > ready to be configured. > > set viewport and enable and configure things that will always be used, > > like texturing, texture coordinate arrays, vert arrays, erase color, > > etc > > you can set your projection matrix here if it's going to be fixed > > load textures, vbos and anything else into vram > > > onDrawFrame: > > clear depth and color buffer > > for dynamic projection (like if FoV or near/far clip plane can > > change), switch to projection matrix, load identity and set. > > switch to modelview matrix > > set lookAt > > enable depth test > > // draw each totally opaque object sorted front to back > > for (GameObject gameObject : sortedGameObjects) { > > push matrix > > draw opaque parts of the object > > pop matrix} > > > // draw alpha blended parts of objects sorts back to front > > enable blending > > for (GameObject gameObject : sortedGameObjects) { > > push matrix > > draw alpha parts of the object > > pop matrix} > > > // draw HUD > > switch to projection matrix > > push matrix > > set ortho > > switch to modelview matrix > > push matrix > > load identity > > disable depth test > > // draw HUD components in orthographic screen space > > enable depth test > > pop matrix > > switch to projection matrix > > pop matrix > > // done - the way the matrix stack was handled here means the > > projection and modelview are exactly as they were before the HUD was > > drawn, so for the next frame, your projection doesn't need to be reset > > unless it's dynamic (changing fov or near/far clip) > > > On Jun 27, 7:01 am, Navigateur <[email protected]> wrote: > > > > Can somebody take me step-by-step how to draw 2D stuff over a 3D scene > > > (such as controls, etc.). What I've been doing so far has not been > > > working (it only draws the 3D scene), which is (in every frame): draw > > > the 3D scene as normal, projection matrix mode, load identity, call > > > GLU.gluOrtho2D(gl, 0, myScreenWidthInPixels, 0, > > > myScreenHeightInPixels), switch the array pointers (vertices and > > > texture coords) to the ones for my 2D stuff, then drawElements with an > > > appropriate index list. (then switch the array pointers back so the 3D > > > stuff works again). > > > > I get nothing added to the screen (just the 3D stuff). > > > > Do I need to be doing something else for it to draw? Can somebody take > > > me step-by-step? -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

