почему метод glReadPixels всегда получает RGB (0, 0, 0) - PullRequest
0 голосов
/ 19 февраля 2012

Я пытаюсь реализовать выбор цвета в Android OpenGL ES.

Здесь я получаю координату:

public boolean onTouchEvent(MotionEvent e) {
   float x = e.getX();
   float y = e.getY();
   ...

Здесь я хочу получить информацию об пикселях при нажатии:

public void processPick(GL10 gl){
    ByteBuffer pixel = ByteBuffer.allocate(4);
    pixel.order(ByteOrder.nativeOrder());
    gl.glReadPixels((int)clickPosX, (int)clickPosY, 1, 1, GL10.GL_RGB, GL10.GL_UNSIGNED_BYTE, pixel);
    byte[] b = new byte[3];
    pixel.get(b);
    Log.d("buffer", b[0] + ",  "+b[1]+", "+b[2]);
}

Но на самом деле я всегда получаю RGB (0, 0, 0), что не так?Как правильно установить цвет и выбрать цвет?

Кто-нибудь может мне помочь?Спасибо!

1 Ответ

0 голосов
/ 19 марта 2012

Попробуйте это: gl.glReadPixels ((int) clickPosX, (int) clickPosY, 1, 1, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, пиксель); байт [] b = новый байт [4];

...