I used a ndk library to decode the frames and update the ShortBuffer
with RGB565 format.
I allocate the buffer in the activity like below.

ShortBuffer m_byteCanvas = ShortBuffer.allocate(m_width * m_height);
.......
And I use GLSurfaceView and set the renderer for it.

mGLSurfaceView = new GLSurfaceView(this);
                mGLSurfaceView.setDebugFlags(GLSurfaceView.DEBUG_LOG_GL_CALLS);
                mGLSurfaceView.setRenderer(new GRenderer());
                setContentView(mGLSurfaceView);

In the GRenderer class, I just need to update the ShortBuffer to
screen.
.....
gl.glBindTexture(GL10.GL_TEXTURE_2D, tex);
gl.glTexImage2D(GL10.GL_TEXTURE_2D, 0, GL10.GL_RGB, m_width, m_height,
0, GL10.GL_RGB, GL10.GL_UNSIGNED_SHORT_5_6_5, m_byteCanvas);
                        l_gl.glTexParameteriv(GL10.GL_TEXTURE_2D,
                    GL11Ext.GL_TEXTURE_CROP_RECT_OES,
                    new int[] {0, 0, 480, 320}, 0);

public void onDrawFrame(GL10 gl) {
gl.glTexImage2D(GL10.GL_TEXTURE_2D, 0, GL10.GL_RGB, m_width, m_height,
0, GL10.GL_RGB, GL10.GL_UNSIGNED_SHORT_5_6_5, m_byteCanvas);
((GL11Ext)gl).glDrawTexiOES(0, 0, 0, 480, 320);
}

This works fine on the emulator (1.5 and 1.6), but when I tested it on
my G2 and G1, it gave me glError 1281 on glTexImage2D. If anybody can
help with this?

PS:
I tried Canvas and the performance is not good enough, it takes more
than 30ms to draw a frame.(480x320).

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to