Сбой glDrawElements на устройствах, хорошо работает на эмуляторе - PullRequest
2 голосов
/ 20 декабря 2011

Я трачу свое время с OpenGL-ES на Android.Все идет хорошо, я делаю 2D-игру, я могу отображать спрайты на экране, перемещать их и т. Д. И т. Д. Но все это просто работает на эмуляторе.На моем Motorola Droid 1 он просто закрывался (даже без предупреждения принудительного закрытия).

Отладчик не генерировал ничего и не отправлял текст отладки, поэтому я остановился на некоторых строках и перешел к шагам и перешагнул додобраться до места, где приложение внезапно закрывается.

В результате оно закрывается в этой строке:

gl.glDrawElements(GL10.GL_TRIANGLES, 6, GL10.GL_UNSIGNED_SHORT, indices);

Чтобы помочь, это моя полная функция рисования:

    /**
 * Draw the sprite on the screen
 * @param gl OpenGLES Context
 */
public void draw(GL10 gl, Vector3 position){
    if(textured)
        gl.glBindTexture(GL10.GL_TEXTURE_2D, textureName);

    gl.glPushMatrix();
        gl.glLoadIdentity();
        gl.glTranslatef(position.X, position.Y, position.Z);
        gl.glScalef(scale.X, scale.Y, 1);
        gl.glRotatef(rotation.X, 1.0f, 0.f, 0.0f);
        gl.glRotatef(rotation.Y, 0.0f, 1.0f, 0.0f);
        gl.glRotatef(rotation.Z, 0.0f, 0.0f, 1.0f);

        gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertices);

        if(textured)
            gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, uvs);

        //gl.glColorPointer(4, GL10.GL_FLOAT, 0, colors);

        gl.glDrawElements(GL10.GL_TRIANGLES, 6, GL10.GL_UNSIGNED_SHORT, indices);
    gl.glPopMatrix();
}

Я понятия не имею, что делает это, потому что он работает очень хорошо, отображает мои спрайты и т. Д. На эмуляторе, но закрывается на устройстве.

Вот журнал logcat:

12-20 01:28:29.615: D/AndroidRuntime(3103): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
12-20 01:28:29.615: I/AndroidRuntime(3103): Heap size: -Xmx24m
12-20 01:28:29.615: D/AndroidRuntime(3103): CheckJNI is OFF
12-20 01:28:29.615: D/dalvikvm(3103): creating instr width table
12-20 01:28:29.787: D/AndroidRuntime(3103): Calling main entry com.android.commands.pm.Pm
12-20 01:28:29.795: D/AndroidRuntime(3103): Shutting down VM
12-20 01:28:29.803: D/dalvikvm(3103): GC_CONCURRENT freed 101K, 71% free 306K/1024K, external 0K/0K, paused 1ms+0ms
12-20 01:28:29.803: I/AndroidRuntime(3103): NOTE: attach of thread 'Binder Thread #3' failed
12-20 01:28:29.803: D/jdwp(3103): Got wake-up signal, bailing out of select
12-20 01:28:29.803: D/dalvikvm(3103): Debugger has detached; object registry had 1 entries
12-20 01:28:30.194: D/AndroidRuntime(3113): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
12-20 01:28:30.194: I/AndroidRuntime(3113): Heap size: -Xmx24m
12-20 01:28:30.194: D/AndroidRuntime(3113): CheckJNI is OFF
12-20 01:28:30.194: D/dalvikvm(3113): creating instr width table
12-20 01:28:30.365: D/AndroidRuntime(3113): Calling main entry com.android.commands.am.Am
12-20 01:28:30.381: I/ActivityManager(2047): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.cygnus.shootaray/.ShotaRayActivity } from pid 3113
12-20 01:28:30.405: D/AndroidRuntime(3113): Shutting down VM
12-20 01:28:30.405: D/dalvikvm(3113): GC_CONCURRENT freed 103K, 69% free 324K/1024K, external 0K/0K, paused 0ms+0ms
12-20 01:28:30.405: E/dalvikvm(3121): could not disable core file generation for pid 3121: Operation not permitted
12-20 01:28:30.405: I/ActivityManager(2047): Start proc com.cygnus.shootaray for activity com.cygnus.shootaray/.ShotaRayActivity: pid=3121 uid=10066 gids={}
12-20 01:28:30.412: I/AndroidRuntime(3113): NOTE: attach of thread 'Binder Thread #3' failed
12-20 01:28:30.412: D/jdwp(3113): Got wake-up signal, bailing out of select
12-20 01:28:30.412: D/dalvikvm(3113): Debugger has detached; object registry had 1 entries
12-20 01:28:30.498: D/szipinf(3121): Initializing inflate state
12-20 01:28:30.631: D/libEGL(3121): loaded /system/lib/egl/libEGL_POWERVR_SGX530_121.so
12-20 01:28:30.631: D/libEGL(3121): loaded /system/lib/egl/libGLESv1_CM_POWERVR_SGX530_121.so
12-20 01:28:30.647: D/libEGL(3121): loaded /system/lib/egl/libGLESv2_POWERVR_SGX530_121.so
12-20 01:28:30.811: I/ActivityManager(2047): Displayed com.cygnus.shootaray/.ShotaRayActivity: +413ms
12-20 01:28:30.842: D/dalvikvm(3121): GC_EXTERNAL_ALLOC freed 58K, 50% free 2702K/5379K, external 0K/0K, paused 54ms
12-20 01:28:30.952: I/DEBUG(1456): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
12-20 01:28:30.959: I/DEBUG(1456): Build fingerprint: 'MOTO_RTEU/umts_sholes/umts_sholes/sholes:2.2.1/SHOLS_U2_05.26.3/296482885:user/release-keys'
12-20 01:28:30.959: I/DEBUG(1456): pid: 3121, tid: 3130  >>> com.cygnus.shootaray <<<
12-20 01:28:30.959: I/DEBUG(1456): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
12-20 01:28:30.959: I/DEBUG(1456):  r0 44d2e0c0  r1 00000000  r2 00000000  r3 00000000
12-20 01:28:30.959: I/DEBUG(1456):  r4 00154e20  r5 00155c80  r6 00000001  r7 00000004
12-20 01:28:30.959: I/DEBUG(1456):  r8 00000024  r9 00000000  10 00000004  fp 00000000
12-20 01:28:30.959: I/DEBUG(1456):  ip 8096a63c  sp 442eba90  lr 80906a44  pc afd0d078  cpsr 60000010
12-20 01:28:30.959: I/DEBUG(1456):  d0  6472656767756265  d1  0000000043000000
12-20 01:28:30.959: I/DEBUG(1456):  d2  0000000000000000  d3  4300000000000000
12-20 01:28:30.959: I/DEBUG(1456):  d4  0000000000000000  d5  0000000000000000
12-20 01:28:30.959: I/DEBUG(1456):  d6  0000000000166b40  d7  0000000000000000
12-20 01:28:30.959: I/DEBUG(1456):  d8  0000000000204762  d9  0000000000000000
12-20 01:28:30.959: I/DEBUG(1456):  d10 0000000000000000  d11 0000000000000000
12-20 01:28:30.959: I/DEBUG(1456):  d12 0000000000000000  d13 0000000000000000
12-20 01:28:30.959: I/DEBUG(1456):  d14 0000000000000000  d15 0000000000000000
12-20 01:28:30.967: I/DEBUG(1456):  d16 41df86f6ff34fdf4  d17 3f50624dd2f1a9fc
12-20 01:28:30.967: I/DEBUG(1456):  d18 41c6803ace000000  d19 00000000000000ff
12-20 01:28:30.967: I/DEBUG(1456):  d20 000000000000ff00  d21 0000010000000000
12-20 01:28:30.967: I/DEBUG(1456):  d22 000000000000d516  d23 00000001000002fd
12-20 01:28:30.967: I/DEBUG(1456):  d24 0000000000002645  d25 0000000000000000
12-20 01:28:30.967: I/DEBUG(1456):  d26 0000000000002645  d27 0000000000000000
12-20 01:28:30.967: I/DEBUG(1456):  d28 0000000000002645  d29 0000000000000000
12-20 01:28:30.967: I/DEBUG(1456):  d30 0000000000000000  d31 0000000000000000
12-20 01:28:30.967: I/DEBUG(1456):  scr 20000010
12-20 01:28:31.100: I/DEBUG(1456):          #00  pc 0000d078  /system/lib/libc.so
12-20 01:28:31.100: I/DEBUG(1456):          #01  lr 80906a44  /system/lib/egl/libGLESv1_CM_POWERVR_SGX530_121.so
12-20 01:28:31.100: I/DEBUG(1456): code around pc:
12-20 01:28:31.100: I/DEBUG(1456): afd0d058 f400071d f5d1f000 f5d1f040 e2522040 
12-20 01:28:31.100: I/DEBUG(1456): afd0d068 3a000009 f5d1f080 f5d1f0c0 f5d1f100 
12-20 01:28:31.100: I/DEBUG(1456): afd0d078 f421020d f421420d f5d1f100 e2522040 
12-20 01:28:31.100: I/DEBUG(1456): afd0d088 f400022d f400422d 2afffff8 e2822040 
12-20 01:28:31.100: I/DEBUG(1456): afd0d098 e2522020 3a000003 f421020d e2522020 
12-20 01:28:31.100: I/DEBUG(1456): code around lr:
12-20 01:28:31.100: I/DEBUG(1456): 80906a24 e3530000 1a000005 e1a03007 e59c0028 
12-20 01:28:31.100: I/DEBUG(1456): 80906a34 e59c102c e59c2024 e1a0e00f e59cf034 
12-20 01:28:31.100: I/DEBUG(1456): 80906a44 e2866001 e2855004 e5942eb0 e3a03001 
12-20 01:28:31.100: I/DEBUG(1456): 80906a54 e1560002 3affffec e2840d77 e1a01008 
12-20 01:28:31.100: I/DEBUG(1456): 80906a64 e2800004 e1a02003 e8bd41f0 ea00cdd5 
12-20 01:28:31.100: I/DEBUG(1456): stack:
12-20 01:28:31.100: I/DEBUG(1456):     442eba50  00000000  
12-20 01:28:31.100: I/DEBUG(1456):     442eba54  00000000  
12-20 01:28:31.100: I/DEBUG(1456):     442eba58  00000000  
12-20 01:28:31.100: I/DEBUG(1456):     442eba5c  00000000  
12-20 01:28:31.100: I/DEBUG(1456):     442eba60  00000000  
12-20 01:28:31.108: I/DEBUG(1456):     442eba64  00000000  
12-20 01:28:31.108: I/DEBUG(1456):     442eba68  00000001  
12-20 01:28:31.108: I/DEBUG(1456):     442eba6c  00000000  
12-20 01:28:31.108: I/DEBUG(1456):     442eba70  00000000  
12-20 01:28:31.108: I/DEBUG(1456):     442eba74  00154e20  
12-20 01:28:31.108: I/DEBUG(1456):     442eba78  00155c7c  
12-20 01:28:31.108: I/DEBUG(1456):     442eba7c  00000000  
12-20 01:28:31.108: I/DEBUG(1456):     442eba80  00000004  
12-20 01:28:31.108: I/DEBUG(1456):     442eba84  00000024  
12-20 01:28:31.108: I/DEBUG(1456):     442eba88  df002777  
12-20 01:28:31.108: I/DEBUG(1456):     442eba8c  e3a070ad  
12-20 01:28:31.108: I/DEBUG(1456): #00 442eba90  44d2e0c0  
12-20 01:28:31.108: I/DEBUG(1456):     442eba94  80906a44  /system/lib/egl/libGLESv1_CM_POWERVR_SGX530_121.so
12-20 01:28:31.108: I/DEBUG(1456):     442eba98  00154e20  
12-20 01:28:31.108: I/DEBUG(1456):     442eba9c  00000004  
12-20 01:28:31.108: I/DEBUG(1456):     442ebaa0  000a49c8  
12-20 01:28:31.108: I/DEBUG(1456):     442ebaa4  00000006  
12-20 01:28:31.108: I/DEBUG(1456):     442ebaa8  8096a5e4  
12-20 01:28:31.108: I/DEBUG(1456):     442ebaac  8090813c  /system/lib/egl/libGLESv1_CM_POWERVR_SGX530_121.so
12-20 01:28:31.108: I/DEBUG(1456):     442ebab0  000a3248  
12-20 01:28:31.108: I/DEBUG(1456):     442ebab4  00163500  
12-20 01:28:31.108: I/DEBUG(1456):     442ebab8  00000000  
12-20 01:28:31.108: I/DEBUG(1456):     442ebabc  00000006  
12-20 01:28:31.108: I/DEBUG(1456):     442ebac0  44f5c420  
12-20 01:28:31.108: I/DEBUG(1456):     442ebac4  00154e20  
12-20 01:28:31.108: I/DEBUG(1456):     442ebac8  00000004  
12-20 01:28:31.108: I/DEBUG(1456):     442ebacc  8096a5e4  
12-20 01:28:31.108: I/DEBUG(1456):     442ebad0  00000006  
12-20 01:28:31.108: I/DEBUG(1456):     442ebad4  00000004  
12-20 01:28:32.162: I/BootReceiver(2047): Copying /data/tombstones/tombstone_08 to DropBox (SYSTEM_TOMBSTONE)
12-20 01:28:32.178: E/InputDispatcher(2047): channel '407c49d0 com.cygnus.shootaray/com.cygnus.shootaray.ShotaRayActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x8
12-20 01:28:32.178: E/InputDispatcher(2047): channel '407c49d0 com.cygnus.shootaray/com.cygnus.shootaray.ShotaRayActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
12-20 01:28:32.186: D/Zygote(1469): Process 3121 terminated by signal (11)
12-20 01:28:32.225: D/dalvikvm(2047): GC_FOR_MALLOC freed 390K, 43% free 5438K/9415K, external 1601K/4601K, paused 59ms
12-20 01:28:32.225: I/WindowManager(2047): WIN DEATH: Window{407c49d0 com.cygnus.shootaray/com.cygnus.shootaray.ShotaRayActivity paused=false}
12-20 01:28:32.225: I/ActivityManager(2047): Process com.cygnus.shootaray (pid 3121) has died.
12-20 01:28:32.241: I/WindowManager(2047): WIN DEATH: Window{407dd460 SurfaceView paused=false}
12-20 01:28:32.303: D/dalvikvm(2047): GC_FOR_MALLOC freed 317K, 42% free 5505K/9415K, external 1601K/4601K, paused 43ms
12-20 01:28:32.342: W/InputManagerService(2047): Got RemoteException sending setActive(false) notification to pid 3121 uid 10066

Любые подсказки, пожалуйста?

РЕДАКТИРОВАТЬ:

Как упомянуто Spoon Thumb, вот мои звонки включения / выключения:

gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);

gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);

for (Drawable i : toDraw) {
    i.draw(gl);
}

gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);

они на onDrawFrame,он вызывает drawable.draw, это первая функция, которую я опубликовал.

Если это поможет, это мой onSurfaceChanged с моими включениями и отключениями:

public void onSurfaceChanged(GL10 gl, int width, int height) {
gl.glViewport(0, 0, width, height);
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrthof(0.0f, width, 0.0f, height, 0.0f, 1.0f);

gl.glShadeModel(GL10.GL_FLAT);
gl.glEnable(GL10.GL_BLEND);
gl.glEnable(GL10.GL_TEXTURE_2D);
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);

gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
}

ТАКЖЕ, у меня естьнемного отредактировал код, не уверен, что изменился, но теперь я не получаю SIGSEGV 11, код работает на моем устройстве, но ничего не вижу.

Ответы [ 3 ]

2 голосов
/ 22 декабря 2011

Мне удалось сделать эту работу самостоятельно.

Я не знаю точно, что я сделал, но он перестал работать, когда:

  • Изменил glDrawElements на glDrawArray

Ну, чтобы сделать это, мне пришлось изменить весь способ, которым я построил свои квады, и теперь я больше не использую индексы (хотя я должен использовать).

Изменено:

gl.glDrawElements(GL10.GL_TRIANGLES, 6, GL10.GL_UNSIGNED_SHORT, indices);

на:

gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);

Не забудьте указать массив ваших вершин.

  • Включить иотключить Clientstates для каждого розыгрыша, а не один раз за кадр.

Вместо:

gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);

drawspriteone();
drawspritetwo();
drawspriteN();...

gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);

Мне пришлось сделать это ВНУТРИ функции рисования, как это:

gl.glBindTexture(GL10.GL_TEXTURE_2D, texture.id);

gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertices);
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, uvs);
gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);

gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);

gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
  • Ах, попробуйте включить и отключить текстуры внутри каждого рисунка.


Я не знаю, какиеиз-за этих изменений приложение заработало на моем телефоне, но оно работало, но ничего не рисовало.Да, я мог видеть буфер чистого цвета, но без текстур.

Что я делал?

Ну, это было много проб и ошибок, некоторые исследования привели меня к мысли, чтоГрафический процессор Milestones (это европейская / южноамериканская версия Moto Droid) и некоторые другие устройства имеют драйвер OpenGL, который работает совершенно по-другому, и они не поддерживают изменение цветового формата.Возможно, это может быть правдой, но это не так.

Я изменил порядок вызовов, установил состояния и т. Д. Но моя ошибка была настолько, настолько глупой, что я мог найти ее простосегодня.

Давайте перейдем к ответу:

НАНЕСЕНИЕ 2D-КВАДОВ НА 0,0f Z COORD!

Почему?Я не знаю.Но моя Z-координата каждого спрайта была установлена ​​на 0,1f, я изменил их, и теперь я могу видеть все спрайты.Странно, да?Еще более странно: эмулятор МОЖЕТ видеть текстуры с z, установленным на 0,1f, но устройство не показало ..

Просто чтобы вы знали, это была моя настройка окна просмотра:

gl.glOrthof(0.0f, width, 0.0f, height, 0.0f, 1.0f);

nearplane как 0.0f и farplane как 1.0f.Разве он не должен принимать значения от 0,0f до 1,0f?

Спасибо!это окончательный ответ на мой вопрос (:

1 голос
/ 02 декабря 2012

Моя программа потерпела крах при использовании gl.glDrawElements ().

Я считаю, что причина в коде:

byteBuffer = ByteBuffer.allocate(6 * 2);

Хорошо работает один:

byteBuffer = ByteBuffer.allocateDirect(6 * 2);
byteBuffer.order(ByteOrder.nativeOrder()); 
indices = byteBuffer.asShortBuffer();
indices.put(new short[]{2, 0, 1, 1, 3, 2}); 
indices.flip();

Вот журнал регистрации ошибок:

12-02 23:21:27.210: I/DEBUG(7052): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
12-02 23:21:27.210: I/DEBUG(7052): Build fingerprint: 'MOTO/MB525_RTNORD/umts_jordan/jordan:2.2.2/3.4.2-177/1302080923:user/release-keys'
12-02 23:21:27.210: I/DEBUG(7052): pid: 7016, tid: 7045  >>> com.player.opengles <<<
12-02 23:21:27.210: I/DEBUG(7052): signal 11 (SIGSEGV), fault addr 00000000
12-02 23:21:27.210: I/DEBUG(7052):  r0 00000000  r1 00000002  r2 00001403  r3 00000006
12-02 23:21:27.210: I/DEBUG(7052):  r4 00294bd0  r5 00000004  r6 8156b5fc  r7 00000006
12-02 23:21:27.217: I/DEBUG(7052):  r8 4818bb78  r9 00001403  10 00000000  fp 00000000
12-02 23:21:27.217: I/DEBUG(7052):  ip 00000000  sp 4818baf8  lr 00000000  pc 81509394  cpsr 60000050
12-02 23:21:27.217: I/DEBUG(7052):  d0  6472656767756265  d1  0000000000110e78
12-02 23:21:27.217: I/DEBUG(7052):  d2  0000000000000000  d3  0000000000000000
12-02 23:21:27.217: I/DEBUG(7052):  d4  0000000000000000  d5  0000000000000000
12-02 23:21:27.217: I/DEBUG(7052):  d6  0000000000000000  d7  0000000000000000
12-02 23:21:27.217: I/DEBUG(7052):  d8  0000000019618ddf  d9  0000000000000000
12-02 23:21:27.217: I/DEBUG(7052):  d10 0000000000000000  d11 0000000000000000
12-02 23:21:27.217: I/DEBUG(7052):  d12 0000000000000000  d13 0000000000000000
12-02 23:21:27.217: I/DEBUG(7052):  d14 0000000000000000  d15 0000000000000000
12-02 23:21:27.217: I/DEBUG(7052):  d16 41c28ee0e720a3d7  d17 3f50624dd2f1a9fc
12-02 23:21:27.217: I/DEBUG(7052):  d18 41bbfb4daf000000  d19 0000000000000000
12-02 23:21:27.217: I/DEBUG(7052):  d20 3ff0000000000000  d21 8000000000000000
12-02 23:21:27.217: I/DEBUG(7052):  d22 0000000000000000  d23 0000000000000000
12-02 23:21:27.217: I/DEBUG(7052):  d24 0000000000000000  d25 3ff0000000000000
12-02 23:21:27.217: I/DEBUG(7052):  d26 0000000000000000  d27 0000000000000000
12-02 23:21:27.217: I/DEBUG(7052):  d28 0020002000200020  d29 3ff0000000000000
12-02 23:21:27.217: I/DEBUG(7052):  d30 0000000000000000  d31 3ff0000000000000
12-02 23:21:27.217: I/DEBUG(7052):  scr 20000012
12-02 23:21:27.233: D/dalvikvm(7039): GC_FOR_MALLOC freed 550 objects / 327560 bytes in 83ms
12-02 23:21:27.272: I/DEBUG(7052):          #00  pc 00009394  /system/lib/egl/libGLESv1_CM_POWERVR_SGX530_125.so
12-02 23:21:27.280: I/DEBUG(7052):          #01  lr 00000000  <unknown>
12-02 23:21:27.280: I/DEBUG(7052): code around pc:
12-02 23:21:27.280: I/DEBUG(7052): 81509374 e1510008 31a01008 e1520008 21a02008 
12-02 23:21:27.280: I/DEBUG(7052): 81509384 e2800001 e15b0000 8afffff7 ea00000c 
12-02 23:21:27.280: I/DEBUG(7052): 81509394 e1db20b0 e1a0000b e08bb087 e1a01002 
12-02 23:21:27.280: I/DEBUG(7052): 815093a4 ea000004 e1d080b0 e1510008 31a01008 
12-02 23:21:27.280: I/DEBUG(7052): 815093b4 e1520008 21a02008 e2800002 e15b0000 
12-02 23:21:27.280: I/DEBUG(7052): code around lr:
12-02 23:21:27.288: I/DEBUG(7052): stack:
12-02 23:21:27.288: I/DEBUG(7052):     4818bab8  002956a8  [heap]
12-02 23:21:27.288: I/DEBUG(7052):     4818babc  000001fc  
12-02 23:21:27.288: I/DEBUG(7052):     4818bac0  4818bb30  
12-02 23:21:27.288: I/DEBUG(7052):     4818bac4  00000001  
12-02 23:21:27.288: I/DEBUG(7052):     4818bac8  00000001  
12-02 23:21:27.288: I/DEBUG(7052):     4818bacc  00000001  
12-02 23:21:27.288: I/DEBUG(7052):     4818bad0  0028a680  [heap]
12-02 23:21:27.288: I/DEBUG(7052):     4818bad4  00294bd0  [heap]
12-02 23:21:27.288: I/DEBUG(7052):     4818bad8  00000004  
12-02 23:21:27.288: I/DEBUG(7052):     4818badc  8156b5fc  /system/lib/egl/libGLESv1_CM_POWERVR_SGX530_125.so
12-02 23:21:27.288: I/DEBUG(7052):     4818bae0  00000006  
12-02 23:21:27.288: I/DEBUG(7052):     4818bae4  4818bb78  
12-02 23:21:27.288: I/DEBUG(7052):     4818bae8  00001403  
12-02 23:21:27.288: I/DEBUG(7052):     4818baec  00000000  
12-02 23:21:27.288: I/DEBUG(7052):     4818baf0  df002777  
12-02 23:21:27.288: I/DEBUG(7052):     4818baf4  e3a070ad  
12-02 23:21:27.296: I/DEBUG(7052): #00 4818baf8  00000000  
12-02 23:21:27.296: I/DEBUG(7052):     4818bafc  43428ec8  
12-02 23:21:27.296: I/DEBUG(7052):     4818bb00  00000000  
12-02 23:21:27.296: I/DEBUG(7052):     4818bb04  0028a680  [heap]
12-02 23:21:27.296: I/DEBUG(7052):     4818bb08  ad382d20  /system/lib/libandroid_runtime.so
12-02 23:21:27.296: I/DEBUG(7052):     4818bb0c  45b5d0c0  /dev/ashmem/mspace/dalvik-heap/2 (deleted)
12-02 23:21:27.296: I/DEBUG(7052):     4818bb10  00000000  
12-02 23:21:27.296: I/DEBUG(7052):     4818bb14  00000000  
12-02 23:21:27.296: I/DEBUG(7052):     4818bb18  41e8e960  /dev/ashmem/dalvik-LinearAlloc (deleted)
12-02 23:21:27.296: I/DEBUG(7052):     4818bb1c  00000006  
12-02 23:21:27.296: I/DEBUG(7052):     4818bb20  0028a680  [heap]
12-02 23:21:27.296: I/DEBUG(7052):     4818bb24  00000000  
12-02 23:21:27.296: I/DEBUG(7052):     4818bb28  41eccfbc  /dev/ashmem/dalvik-LinearAlloc (deleted)
12-02 23:21:27.296: I/DEBUG(7052):     4818bb2c  0028a680  [heap]
12-02 23:21:27.296: I/DEBUG(7052):     4818bb30  00000006  
12-02 23:21:27.296: I/DEBUG(7052):     4818bb34  00000000  
12-02 23:21:27.296: I/DEBUG(7052):     4818bb38  00000004  
12-02 23:21:27.296: I/DEBUG(7052):     4818bb3c  4818bb78  
1 голос
/ 20 декабря 2011

У вас нет никаких включений / отключений вызовов. Попробуйте добавить в начало вашего метода onDraw:

    gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);


    if(textured){
        gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
    }

и затем после glDrawElements():

    if(textured){       
        gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
    }

    gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);

в противном случае попробуйте поместить блок try / catch вокруг строки glDrawElements() и / или включить отладку в GLSurfaceView:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...