comment configurer opengl pour utiliser glTextParameteriv correct. Le code suivant fonctionne dans l'émulateur mais pas sur mon désir htc avec le mod cyanogen 7. Peut-être que quelqu'un peut l'essayer avec son propre téléphone?openglaps glTexParameteriv
public class GLView extends GLSurfaceView implements GLSurfaceView.Renderer {
public GLView(Context context) {
super(context);
setDebugFlags(DEBUG_CHECK_GL_ERROR | DEBUG_LOG_GL_CALLS);
setRenderer(this);
}
int textureID;
@Override
public void onDrawFrame(GL10 gl) {
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glBindTexture(GL10.GL_TEXTURE_2D, textureID);
((GL11Ext)gl).glDrawTexfOES(10, 10, 0, 100, 100);
}
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
gl.glViewport(0, 0, width, height);
}
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
Bitmap bitmap;
int[] textures;
InputStream is;
is = getResources().openRawResource(R.drawable.skater_idle_roll);
try {
BitmapFactory.Options sBitmapOptions = new BitmapFactory.Options();
// Set our bitmaps to 16-bit, 565 format.
sBitmapOptions.inPreferredConfig = Bitmap.Config.RGB_565;
bitmap = BitmapFactory.decodeStream(is, null, sBitmapOptions);
} finally {
try {
is.close();
} catch (IOException e) {
// Ignore.
}
}
//gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);
gl.glClearColor(0.5f, 0.5f, 0.5f, 1);
gl.glShadeModel(GL10.GL_FLAT);
gl.glDisable(GL10.GL_DEPTH_TEST);
gl.glDisable(GL10.GL_DITHER);
gl.glDisable(GL10.GL_LIGHTING);
gl.glEnable(GL10.GL_TEXTURE_2D);
gl.glEnable(GL10.GL_BLEND);
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
gl.glColor4x(0x10000, 0x10000, 0x10000, 0x10000);
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
textures = new int[1];
gl.glGenTextures(1, textures, 0);
textureID = textures[0];
int[] crop = new int[4];
crop[0] = 0;
crop[1] = bitmap.getHeight();
crop[2] = bitmap.getWidth();
crop[3] = -bitmap.getHeight();
gl.glBindTexture(GL10.GL_TEXTURE_2D, textureID);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
// here EXCEPTION is thrown
((GL11) gl).glTexParameteriv(GL10.GL_TEXTURE_2D, GL11Ext.GL_TEXTURE_CROP_RECT_OES, crop, 0);
}
}
DDMS Ausgabe:
04-19 20: 24: 23,225: ERREUR/AndroidRuntime (2524): Exception irrécupérable: GLTHREAD 10 19/04 20: 24: 23,225: ERREUR/AndroidRuntime (2524): android.opengl.GLException: valeur non valide 04-19 20: 24: 23.225: ERROR/AndroidRuntime (2524): à android.opengl.GLErrorWrapper.checkError (GLErrorWrapper.java:62) 04-19 20:24: 23.225: ERROR/AndroidRuntime (2524): à android.opengl.GLErrorWrapper.glTexParameteriv (GLErrorWrapper.java:803) 04-19 20: 24: 23.225: ERROR/AndroidRuntime (2524): à android.opengl.GLLogWrapper.glTexParameteriv (GLLogWrapper.jav a: 2512) 04-19 20: 24: 23.225: ERROR/AndroidRuntime (2524): à dk.opengltest.GLView.onSurfaceCreated (GLView.java:93) 04-19 20: 24: 23.225: ERROR/AndroidRuntime (2524): à android.opengl.GLSurfaceView $ GLThread.guardedRun (GLSurfaceView.java:1348) 04-19 20: 24: 23.225: ERROR/AndroidRuntime (2524): à android.opengl.GLSurfaceView $ GLThread.run (GLSurfaceView. java: 1118)
glDebugFlags sont actifs. Replica Island qui utilise le même technik pour dessiner des œuvres, donc je pense que je manque quelque chose mais je ne sais pas quoi ...
si je ne le permet pas glDebugFlags rectangle dessiné est juste gris. .. peut-être quelque chose de mal avec mon format d'image? – SACO
Personne ne connaît de réponse? – SACO