Hi,

I'm trying to detect the opengl object under the cursor... I have read
it referred to as picking. Here is my code:

    public int makeBuffer(GL10 gl, int x, int y) {

        ByteBuffer PixelBuffer = ByteBuffer.allocateDirect(4);
        PixelBuffer.order(ByteOrder.nativeOrder());
        PixelBuffer.position(0);
        int mTemp = 0;
        gl.glReadPixels((int)x, (int) y, 1, 1, GL10.GL_RGBA,
GL10.GL_UNSIGNED_BYTE, PixelBuffer);
        Log.e("Picking", " xy: x" + x + " y"+ y);
        byte b [] = new byte[4];
        PixelBuffer.get(b);
        Log.e("Picking", " rgba: r"+ PixelBuffer.get(0) + " g" +
PixelBuffer.get(1) + " b" +
                PixelBuffer.get(2) + " a" + PixelBuffer.get(3));
        Log.e("Picking", " rgba: r"+ b[0] + " g" + b[1] + " b" +
                b[2] + " a" + b[3]);

        //mTemp = PixelBuffer.get(0);
        mTemp = b[0];

        Log.e("Picking", "result:" + mTemp );

        return mTemp;
    }

See that most of the code above is logcat statements. My code prints
zeros to the screen for r,g, and b. For alpha it prints '-1' which is
translatable to 255 (unsigned) as 'full alpha'. I'm trying to detect a
color on the screen at the given x/y position. I would be happy with a
red value that's somewhere between 1 and 15, as that's the color that
should be below the touch. I would expect that if I was doing it
entirely wrong I would get all zeroes, but I must be doing it at least
partially right, as I'm getting alpha. I have also included lines in
my manifest that tell the phone that I use the permissions for the
'surface flinger' and the 'read frame buffer'. I don't know if these
lines are working.

<uses-permission
android:name="android.permission.ACCESS_SURFACE_FLINGER" />
<uses-permission android:name="android.permission.READ_FRAME_BUFFER" /
>

any help would be appreciated.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to