Dan,I've yet to start messing with GL ES so this is coming from Direct3D experience but the idea is the same.
What you can do is create a texture with all the letters of the alphabet, numbers 0-9 and symbols. There are apps out there that will create such a texture and an XML file that contains the texture co- ords for each letter/number/symbol. This one would work as it exports in PNG format which Android supports: http://www.angelcode.com/products/bmfont/ To draw the text you have render 1 quad for each alpha-numeric character being drawn at the location on screen you want it drawn too. So if your text is "Hello" then you will have to render 5 quads. Each quad will contain the texture co-ords of the corresponding alpha- numeric character in the texture. I would create a vertex buffer object at start-up and make it large enough to hold 256 characters. Your draw text function would then fill out this buffer each frame update with the updated text location co- ordinates then all you have to do is get OpenGL to render it. You will want it rendered in orthographic projection mode and using screen space co-ordinates... that is you don't want OpenGL to transform or light those verticies for you. Again not sure of the GLES pipeline as all my experience is Direct3D. Make sense kinda kinda? Fred On Aug 24, 3:27 pm, Dan Sherman <[email protected]> wrote: > We're having the same issues in some of our games. Unfortunately running > into issues drawing dynamic text in OpenGL, any chance you'd care to share > your solution for that? (if you have one that is) > > - Dan > > On Mon, Aug 24, 2009 at 2:39 PM, TjerkW <[email protected]> wrote: > > > The SpriteMethodTest application shows the benefits of opengl, > > the main benefit is: > > > If you have a lot of sprites / a lot of things happening at the same > > time it is better to use opengl. > > I am porting my game to opengl now. It was too slow on only the Canvas > > (30+ things moving at the same time) > > > On 22 jul, 12:45, MrChaz <[email protected]> wrote: > > > The SurfaceView is fine for games, at least simple ones. > > > Have a look at the LunarLander sample. > > > >http://developer.android.com/guide/samples/LunarLander/index.html > > > > On Jul 21, 9:33 pm, klirr <[email protected]> wrote: > > > > > I use SurfaceView for my game, tried normal View first but that was to > > > > slow. > > > > Problem is, it still is. The redrawing just isn't anywhere fast enough > > > > for a game. So unless it is a lot faster on the real phone this won't > > > > cut it at all. > > > > Is it necessary to use OpenGL for games? > > > > > package com.android.shmup; > > > > > import android.app.Activity; > > > > import android.content.Context; > > > > import android.graphics.*; > > > > import android.os.Bundle; > > > > import android.view.View; > > > > import android.view.KeyEvent; > > > > > public class Shmup extends Activity { > > > > > @Override > > > > protected void onCreate(Bundle savedInstanceState) { > > > > super.onCreate(savedInstanceState); > > > > setContentView(new GameView(this)); > > > > } > > > > > private static class GameView extends View { > > > > private Paint mPaint = new Paint(); > > > > private int x; > > > > private int y; > > > > > public GameView(Context context) { > > > > super(context); > > > > x = 135; > > > > y = 303; > > > > setFocusable(true); > > > > requestFocus(); > > > > } > > > > > @Override > > > > protected void onDraw(Canvascanvas) { > > > > Paint paint = mPaint; > > > > canvas.translate(10, 10); > > > > canvas.drawColor(Color.rgb(184,134,11)); > > > > paint.setColor(Color.rgb(107,142,35)); > > > > paint.setStrokeWidth(1); > > > > canvas.drawRect(x, y, x+30, y+7, paint); > > > > canvas.drawRect(x+10, y+7, x+20, y+27, paint); > > > > canvas.drawRect(x+5, y+27, x+25, y+32, paint); > > > > } > > > > > @Override > > > > public boolean onKeyDown(int keyCode, KeyEvent event) { > > > > if (keyCode == KeyEvent.KEYCODE_DPAD_UP) { > > > > y -= 3; > > > > invalidate(); > > > > } else if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { > > > > x -= 3; > > > > invalidate(); > > > > } else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) { > > > > y += 3; > > > > invalidate(); > > > > } else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { > > > > x += 3; > > > > invalidate(); > > > > } > > > > return true; > > > > } > > > > > } > > > > > } --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---

