Android OpenGL only renders half the screen -


i have follow example of opengl application , don't know why thing happening...

i have glsurfaceview it's corresponding renderer drawing triangle. but, instead of getting whole view on screen, have upper half, , it's duplicated can see on picture. i'm using nexus 1 alt text

the xml:

<?xml version="1.0" encoding="utf-8"?> <com.forgottenprojects.geoturista.drawinglayer      xmlns:android="http://schemas.android.com/apk/res/android"      android:id="@+id/drawing"      android:layout_width="fill_parent"      android:layout_height="fill_parent" />  

the activity has in manifest:

android:theme="@android:style/theme.notitlebar.fullscreen" 

the drawinglayer class:

public class drawinglayer extends glsurfaceview { private trianglerenderer renderer; private context context; public drawinglayer(context context, attributeset attrs) {     super(context, attrs);     init(context); } public drawinglayer(context context) {     super(context);     init(context); } private void init(context c) {     this.context = c;     seteglconfigchooser(false);     this.renderer = new trianglerenderer(c);     setrenderer(renderer);     setrendermode(glsurfaceview.rendermode_continuously);     getholder().setformat(pixelformat.translucent); } } 

the triangle renderer (most of apress pro android 2 book)

public class trianglerenderer implements renderer { private final static int verts = 3; private floatbuffer mfvertexbuffer; private shortbuffer mindexbuffer;    trianglerenderer(context context)   {       bytebuffer vbb = bytebuffer.allocatedirect(verts * 3 * 4);       vbb.order(byteorder.nativeorder());       mfvertexbuffer = vbb.asfloatbuffer();       bytebuffer ibb = bytebuffer.allocatedirect(verts * 2);       ibb.order(byteorder.nativeorder());       mindexbuffer = ibb.asshortbuffer();       float[] coords = {       -0.5f, -0.5f, 0, // (x1,y1,z1)       0.5f, -0.5f, 0,       0.0f, 0.5f, 0       };       (int = 0; < verts; i++) {           for(int j = 0; j < 3; j++) {               mfvertexbuffer.put(coords[i*3+j]);           }       }       short[] myindecesarray = {0,1,2};       (int i=0;i<3;i++)       {           mindexbuffer.put(myindecesarray[i]);       }       mfvertexbuffer.position(0);       mindexbuffer.position(0);   }   protected void draw(gl10 gl)   {       gl.glcolor4f(1.0f, 0, 0, 0.5f);       gl.glvertexpointer(3, gl10.gl_float, 0, mfvertexbuffer);       gl.gldrawelements(gl10.gl_triangles, verts,       gl10.gl_unsigned_short, mindexbuffer);   }  @override public void onsurfacecreated(gl10 gl, eglconfig config) {      gl.gldisable(gl10.gl_dither);      gl.glhint(gl10.gl_perspective_correction_hint, gl10.gl_fastest);      gl.glclearcolor(0.5f, 0.5f, 0.5f, 1.0f);      gl.glshademodel(gl10.gl_smooth);      gl.glenable(gl10.gl_depth_test); } @override public void ondrawframe(gl10 gl) {     gl.gldisable(gl10.gl_dither);     gl.glclear(gl10.gl_color_buffer_bit | gl10.gl_depth_buffer_bit);     gl.glclearcolor(1.0f, 0.5f, 0.7f, 1.0f);     gl.glmatrixmode(gl10.gl_modelview);     gl.glloadidentity();     glu.glulookat(gl, 0, 0, -5, 0f, 0f, 0f, 0f, 1f, 0f);     gl.glenableclientstate(gl10.gl_vertex_array);     draw(gl); } @override public void onsurfacechanged(gl10 gl, int width, int height) {     gl.glviewport(0, 0, width, height);     gl.glmatrixmode(gl10.gl_projection);     float ratio = (float)width / (float)height;     gl.glloadidentity();     gl.glfrustumf(-ratio, ratio, -1, 1, 3, 7); } } 

thanks in advance!

looks egl display configuration wrong.


Comments

Popular posts from this blog

ASP.NET/SQL find the element ID and update database -

c++ - Compiling static TagLib 1.6.3 libraries for Windows -

PostgreSQL 9.x - pg_read_binary_file & inserting files into bytea -