- Forum-Beiträge: 1
18.06.2014, 11:08:42 via Website
18.06.2014 11:08:42 via Website
Hallo!
ich versuche die Farbe anhand von TouchEvents herauszufinden und es als String auszugeben. Momentan gibt es zwei Varianten mit den ich es versuche. 1. In der onDrawFrame(GL10 gl) Methode, 2. In der onTouchEvent Methode.
Bei der ersten Variante im onDrawFrame bekomme ich nur Fragezeichen als Ausgabe. Bei der zweiten im onTouchEvent stürzt das Programm ab mit der Fehlermeldung: JNI Warning: received null array in Landroid/opengl/GLES20;.glReadPixels: (IIIIIILJava/nio/Buffer; )V (GetPrimitiveArrayCritical)
Hier Code:
ByteBuffer buffer = ByteBuffer.allocate(100);
CharBuffer cbuf = buffer.asCharBuffer();
//gl.glReadPixels(..) bei onDrawFrame
GLES20.glReadPixels(touchXint, touchYint, 1, 1, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, cbuf);
Log.d(''PixelFarbe'', cbuf.toString());
Vielen Dank im Voraus!
Edit:
Hier noch eine Variante in der onDrawFrame Methode. Ich bekomme als Ausgabe immer nur eine 0 heraus:
ByteBuffer ss = ByteBuffer.allocate(100);
ss.order(ByteOrder.nativeOrder());
CharBuffer cbuf = ss.asCharBuffer();
GLES20.glReadPixels(touchXint, touchYint, 1, 1, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, cbuf);
Log.d("PickedColor", Integer.toString((int) cbuf.get(0)));
Log.d("PickedColor1", Integer.toString((int) cbuf.get(1)));
Log.d("PickedColor2", Integer.toString((int) cbuf.get(2)));
— geändert am 18.06.2014, 12:39:41
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.