Ejemplo de código: dibujo de una textura en GLField

El siguiente ejemplo de código requiere añadir un archivo .png de 256 x 256 píxeles denominado bg.png a su proyecto.

import net.rim.device.api.system.Bitmap;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.opengles.*;
import javax.microedition.khronos.opengles.*;
import javax.microedition.khronos.egl.*;
public final class GLFieldDemo extends UiApplication
{
    public GLFieldDemo()
    {
        pushScreen(new HomeScreen());
    }
    public static void main(String[] args)
    {
        GLFieldDemo app = new GLFieldDemo();
        app.enterEventDispatcher();
    }
}
class MyGLField extends GLField
{
     protected void layout(int width, int height)
     {
         setExtent(256, 256);
     }
     protected void initialize(GL gl)
     {
         GL11 gl11 = (GL11)gl;
         gl11.glClearColor(0, 0, 0, 1);
         int textureNames[] = new int[1];
         gl11.glGenTextures(1,textureNames,0);
         gl11.glBindTexture(GL11.GL_TEXTURE_2D, textureNames[0]);
         Bitmap img = Bitmap.getBitmapResource("bg.png");
         GLUtils.glTexImage2D(gl11,0,GL11.GL_RGB, GL11.GL_UNSIGNED_BYTE, img, null);
         gl11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, 
           GL11.GL_LINEAR);
         gl11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, 
           GL11.GL_LINEAR);
         gl11.glEnable(GL11.GL_TEXTURE_2D);
     }
     protected void render(GL gl)
     {
         GL11 gl11 = (GL11)gl;
         gl11.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
         ((GL11Ext)gl11).glDrawTexiOES(0, 0, 0, 256,256);
     }
     public MyGLField(int ver)
     {
         super(ver);
     }
 }
class HomeScreen extends MainScreen
 {
     public HomeScreen()
     {
         add(new MyGLField(GLField.VERSION_1_1));
         add(new LabelField("OpenGL ES field"));
     }
 }

¿Le ha resultado útil esta información? Envíenos sus comentarios.