> The best solution to your problem is probably to "bite the bullet" and 
> rewrite your code to use shaders in OpenGL ES 2.0. All major phones and 
> quite a few minor ones support it now.
>
> It may be your only solution, if the Galaxy S3 has to move too many more 
> bits than the P350 did, or has a slower OpenGL client-server path. Or if 
> Motorola took too many shortcuts in maintaining OpenGL ES 1.0 backwards 
> compatibility.
>
> Finally, from this snippet, we cannot tell if you are handling your 
> buffers correctly. For example is 'buffer' a directly allocated ByteBuffer?
>


This is full code, I optimized it even more, but only making 4 OpenGL calls 
every frame.


public class MainActivity extends Activity implements Renderer, 
>> OnTouchListener {
>
>     private GLSurfaceView surfaceView;
>
>     private FloatBuffer vertices;
>
>     private float x;
>
>     private float y;
>
>     private int SCREEN_WIDTH = 1280;
>
>     private int SCREEN_HEIGHT = 720;
>
>
>>     @Override
>
>     protected void onCreate(Bundle savedInstanceState) {
>
>         super.onCreate(savedInstanceState);
>
>
>>         surfaceView = new GLSurfaceView(this);
>
>         surfaceView.setOnTouchListener(this);
>
>         surfaceView.setEGLConfigChooser(8,8,8,8,8,8);
>
>         surfaceView.setRenderer(this);
>
>
>>         vertices = ByteBuffer.allocateDirect(12 * 
>> 4).order(ByteOrder.nativeOrder()).asFloatBuffer();
>
>
>>         vertices.put(new float[]{
>
>                 -1,-1,
>
>                  1,-1,
>
>                 -1, 1,
>
>                 -1, 1,
>
>                  1, 1,
>
>                  1,-1
>
>         });
>
>         vertices.flip();
>
>
>>         setContentView(surfaceView);
>
>     }
>
>
>>     public boolean onTouch(View view, MotionEvent motionEvent){
>
>         x = motionEvent.getRawX();
>
>         y = motionEvent.getRawY();
>
>
>>         return true;
>
>     }
>
>
>>     public void onDrawFrame(GL10 gl){
>
>         gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
>
>         float frustumWidth = SCREEN_WIDTH/100.0f;
>
>         float frustumHeight = SCREEN_HEIGHT/100.0f;
>
>
>>         gl.glLoadIdentity();
>
>         
>> gl.glTranslatef((x/SCREEN_WIDTH)*frustumWidth,(y/SCREEN_HEIGHT)*frustumHeight,0);
>
>         gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 6);
>
>
>>     }
>
>
>>     public void onSurfaceChanged(GL10 gl, int width, int height){
>
>         gl.glViewport(0,0,SCREEN_WIDTH,SCREEN_HEIGHT);
>
>         gl.glMatrixMode(GL10.GL_PROJECTION);
>
>         gl.glLoadIdentity();
>
>
>>         gl.glOrthof(0,SCREEN_WIDTH/100.0f,SCREEN_HEIGHT/100.0f,0,-1,1);
>
>
>>         gl.glMatrixMode(GL10.GL_MODELVIEW);
>
>
>>         gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
>
>         gl.glVertexPointer(2, GL10.GL_FLOAT, 0, vertices);
>
>     }
>
>
>>     public void onSurfaceCreated(GL10 gl, EGLConfig config){
>
>
>>     }
>
>
>> }
>
>
You can't make it any simpler than that, and there is still delay.

Well, I guess I will have to move on to OpenGL ES 2.0, I was actually 
planning on rewriting that framework in ES 2.0 entirely, but only after I 
finish this game first. So I guess I have to stop working on my game, and 
start rewriting my framework now... I HOPE this will do the trick. If not, 
then i'm screwed, big time.
 

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to