как настроить opengl для правильного использования glTextParameteriv.Следующий код работает в эмуляторе, но не по моему желанию htc с cyanogen mod 7. Может быть, кто-то может попробовать его на своем собственном телефоне?
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: ОШИБКА / AndroidRuntime (2524): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: GLThread 10 04-19 20: 24: 23.225: ОШИБКА / AndroidRuntime (2524): android.opengl.GLException: недопустимое значение 04-19 20: 24: 23.225: ОШИБКА/ AndroidRuntime (2524): в android.opengl.GLErrorWrapper.checkError (GLErrorWrapper.java:62) 04-19 20: 24: 23.225: ОШИБКА / AndroidRuntime (2524): в android.opengl.GLErrorWrapper.glTexParameteriv (GLErrorWpper:803) 04-19 20: 24: 23.225: ОШИБКА / AndroidRuntime (2524): at android.opengl.GLLogWrapper.glTexParameteriv (GLLogWrapper.java:2512) 04-19 20: 24: 23.225: ОШИБКА / AndroidRuntime (2524): вdk.opengltest.GLView.onSurfaceCreated (GLView.java:93) 04-19 20: 24: 23.225: ОШИБКА / AndroidRuntime (2524): в android.opengl.GLSurfaceView $ GLThread.guardedRun (GLSurfaceView.java:1348) 04-1920: 24: 23.225: ОШИБКА / AndroidRuntime (2524): на android.opengl.GLSurfaceView $ GLThread.run (GLSurfaceView.java:1118)
glDebugFlags активны.Остров Реплики, который использует ту же технику для рисования работ, так что я думаю, что мне чего-то не хватает, но я не знаю, что ...