I have created an android app for drawing of lines,circles… by using GLSurfaceView in OpenGLES 2.0 like an Auto cad app. The app works well with Google Nexus 7, in the sense that if we draw a line & then a circle the line doesn’t get erased in surface view But with Samsung Galaxy Note II, it is entirely different. The line previously drawn before a circle being drawn, gets erased. i.e., each time if we draw a new line or circle, the previous one gets erased.I can draw only one image at a time. What I need is the same output which I get in Google Nexus 7 in Samsung Galaxy Note II. .e.I want to draw more than one image in the GLSurfaceView at a time.
Note : Both the Android OS in Google Nexus 7 and Samsung Galaxy Note II are Jelly Bean 4.2. But both devices are different GPU. Google Nexus 7 GPU is ULP GeForce & Samsung Galaxy Note II is Mali400MP.
Would this be an issue in the rendering of output of the Surfaceview ?
Should we take into account of GPU while Coding ?
Can anyone tell me why this problem of different output in different devices ?
You must develop an understanding of how you are rendering and to what type of surface. The issue you are encountering may be caused by double buffering vs. single buffering but if you are using a library for rendering other than low level OpenGL ES then it could be anything. You should not need to worry about which GPU you are using for basic OpenGL ES where it makes a difference is when it comes to extensions and compressed texture formats. You are probably rendering with assumptions that do not hold across systems or you are implicitly making assumptions that you are unaware of.
Don’t let the name “GLSurfaceview” fool you. That appears to be an Android API call, not OpenGL. Aside from that, maybe there is someway for you to explicitly disable the clear screen function, it sounds like this is the issue.