Weird, even if the command queue filled up and some were sent to the
hardware automatically, that shouldn't cause a buffer swap, which must
have happened for you to see things in progress...

On Sep 2, 3:50 pm, Thiago Lopes Rosa <thiago.r...@gmail.com> wrote:
> Hi,
>
> I have a 3D game and I am using color-picking to know which object was
> selected.
>
> When the user touches the screen, I draw each object with a different color.
> Then I read the color where the user touched the screen to know which object
> was selected. After that I draw each object with their respective
> textures/colors. (everything done during one onDrawFrame pass)
>
> The problem is that sometimes the colored objects appear on the screen (~5%
> of the times the user touches the screen) and it is even worse on slower
> hardwares.
>
> This is my pseudo code:
>
> public void onDrawFrame(GL10 gl) {
> if (user touched the screen) {
>  gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
>  gl.glMatrixMode(GL10.GL_MODELVIEW);
>
> // DRAW COLORED OBJECTS
>
> gl.glReadPixels(x, y, ......);
>  // CHECK WHICH OBJECT WAS SELECTED
>  gl.glColor4x(0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF);
>  }
>
>  gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
>  gl.glMatrixMode(GL10.GL_MODELVIEW);
>
>  // DRAW TEXTURED OBJECTS
>
> }
>
> As far as I understand, we always draw on the Back Buffer and only after we
> finish, it swaps to the Front Buffer and updates the screen.
> Is there anything wrong with the above code?
>
> Thanks!
>
> Thiago

-- 
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