Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid - OpenGL ES: how to texture a triangle
    primarykey
    data
    text
    <p>I'm learning OpenGL ES. When I'm using texture for triangle, I meet error. Here is my code:</p> <pre><code>package com.test; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.FloatBuffer; import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.opengles.GL10; import android.app.Activity; import android.content.res.AssetManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.opengl.GLSurfaceView; import android.opengl.GLSurfaceView.Renderer; import android.opengl.GLUtils; import android.os.Bundle; public class TexttureTriangleTest extends Activity{ GLSurfaceView glView; ByteBuffer byteBuffer; FloatBuffer vertices; AssetManager assetManager; public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); assetManager = getAssets(); int VERTEX_SIZE = (2+2)*4; byteBuffer = ByteBuffer.allocateDirect(3*VERTEX_SIZE); byteBuffer.order(ByteOrder.nativeOrder()); vertices = byteBuffer.asFloatBuffer(); vertices.put(new float[] { 0.0f, 0.0f, 1, 0, 0, 1, 319.0f, 0.0f, 0, 1, 0, 1, 160.0f, 479.0f, 0, 0, 1, 1}); vertices.flip(); glView = new GLSurfaceView(this); glView.setRenderer(new Render()); setContentView(glView); } class Render implements Renderer{ @Override public void onDrawFrame(GL10 gl) { try { //I think error in this block of code Bitmap bitmap = BitmapFactory.decodeStream(assetManager.open("bobrgb888.png")); int textureIds[] = new int[1]; gl.glGenTextures(1, textureIds, 0); int textureId = textureIds[0]; gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId); GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0); gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST); gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_NEAREST); gl.glBindTexture(GL10.GL_TEXTURE_2D, 0); bitmap.recycle(); } catch (IOException e) { throw new RuntimeException("couldn't load asset!"); } gl.glViewport(0, 0, glView.getWidth(), glView.getHeight()); gl.glClear(GL10.GL_COLOR_BUFFER_BIT); gl.glMatrixMode(GL10.GL_PROJECTION); gl.glLoadIdentity(); gl.glOrthof(340, 0, 420, 0, 0, 0); gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); gl.glEnableClientState(GL10.GL_COLOR_ARRAY); int VERTEX_SIZE = (2+2)*4; vertices.position(0); gl.glVertexPointer(2, GL10.GL_FLOAT, VERTEX_SIZE, vertices); vertices.position(2); gl.glTexCoordPointer(2, GL10.GL_FLOAT, VERTEX_SIZE, vertices); gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 3); } @Override public void onSurfaceChanged(GL10 gl, int width, int height) { // TODO Auto-generated method stub } @Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { // TODO Auto-generated method stub } } } </code></pre> <p>I think I have met error in function <code>onDrawFrame</code> and in block code <code>try-catch</code>. Who can verify it for me and teach me how to correct it, please.</p> <p>thanks :)</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload