Hi there! I've the same problem... Have you solve it? Please let me know. Thanks
Paolo On 5 Lug, 14:41, Aidan C <aidanchu...@gmail.com> wrote: > Hey Guys, > > I've made some edits to my application but I'm pretty sure it crashing > is linked to my updating my Nexus One. I've included the error as well > as all code I think is relevant. Anyone got any ideas? > > 07-05 12:07:04.292: ERROR/AndroidRuntime(5751): FATAL EXCEPTION: > GLThread 11 > 07-05 12:07:04.292: ERROR/AndroidRuntime(5751): > java.lang.IllegalArgumentException: No config chosen > 07-05 12:07:04.292: ERROR/AndroidRuntime(5751): at > android.opengl.GLSurfaceView > $BaseConfigChooser.chooseConfig(GLSurfaceView.java:771) > 07-05 12:07:04.292: ERROR/AndroidRuntime(5751): at > android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:916) > 07-05 12:07:04.292: ERROR/AndroidRuntime(5751): at > android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java: > 1246) > 07-05 12:07:04.292: ERROR/AndroidRuntime(5751): at > android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1116) > > public class GLCamTest extends Activity { > private CamLayer mPreview; > private GLLayer glView; > static int counter=0; > > public void onCreate(Bundle savedInstanceState) { > super.onCreate(savedInstanceState); > counter++; > } > > /** Called when the activity is first created. */ > @Override > public void onResume() { > super.onResume(); > > this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); > > final Window win = getWindow(); > win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, > WindowManager.LayoutParams.FLAG_FULLSCREEN); > > // Hide the window title. > requestWindowFeature(Window.FEATURE_NO_TITLE); > > glView=new GLLayer(this); > > mPreview = new CamLayer(this, glView); > > setContentView(glView); > addContentView(mPreview, new > LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); > } > protected void onPause() { > super.onPause(); > if (counter>=2) { > System.exit(0); > } > } > > } > > public class GLLayer extends GLSurfaceView implements > SurfaceHolder.Callback, > Camera.PreviewCallback, Renderer { > > int onDrawFrameCounter=1; > int[] cameraTexture; > byte[] glCameraFrame=new byte[256*256]; //size of a texture > must be a power of 2 > FloatBuffer cubeBuff; > FloatBuffer texBuff; > > public GLLayer(Context c) { > super(c); > > this.setEGLConfigChooser(5, 6, 5, 8, 16, 0); > this.setRenderer(this); > this.getHolder().setFormat(PixelFormat.TRANSLUCENT); > } > > public void onDrawFrame(GL10 gl) { > onDrawFrameCounter++; > > gl.glEnable(GL10.GL_TEXTURE_2D); > gl.glClear(GL10.GL_COLOR_BUFFER_BIT | > GL10.GL_DEPTH_BUFFER_BIT); > > bindCameraTexture(gl); > > gl.glLoadIdentity(); > GLU.gluLookAt(gl, 0, 0, 4.2f, 0, 0, 0, 0, 1, 0); > > gl.glRotatef(onDrawFrameCounter,1,0,0); //Rotate the > camera image > gl.glRotatef((float)Math.sin(onDrawFrameCounter/ > 20.0f)*40,0,1,0); //Rotate the camera image > gl.glRotatef((float)Math.cos(onDrawFrameCounter/ > 40.0f)*40,0,0,1); //Rotate the camera image > > gl.glNormal3f(0,0,1); > gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4); > gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 4, 4); > gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 8, 4); > gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP,12, 4); > gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP,16, 4); > gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP,20, 4); > } > > public void onSurfaceChanged(GL10 gl, int width, int height) { > gl.glViewport(0, 0, width, height); > > float ratio = (float) width / height; > gl.glMatrixMode(GL10.GL_PROJECTION); > gl.glLoadIdentity(); > gl.glFrustumf(-ratio, ratio, -1, 1, 1, 10); > > gl.glMatrixMode(GL10.GL_MODELVIEW); > gl.glLoadIdentity(); > GLU.gluLookAt(gl, 0, 0, 4.2f, 0, 0, 0, 0, 1, > 0); > } > > public void onSurfaceCreated(GL10 gl, EGLConfig config) { > gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, > GL10.GL_FASTEST); > > gl.glClearColor(0, 0, 0, 0); > gl.glEnable(GL10.GL_CULL_FACE); > gl.glShadeModel(GL10.GL_SMOOTH); > gl.glEnable(GL10.GL_DEPTH_TEST); > > cubeBuff = makeFloatBuffer(camObjCoord); > texBuff = > makeFloatBuffer(camTexCoords); > gl.glVertexPointer(3, GL10.GL_FLOAT, 0, cubeBuff); > gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); > gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, texBuff); > gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY); > } > > /** > * Generates a texture from the black and white array filled > by the onPreviewFrame > * method. > */ > void bindCameraTexture(GL10 gl) { > synchronized(this) { > if (cameraTexture==null) > cameraTexture=new int[1]; > else > gl.glDeleteTextures(1, cameraTexture, > 0); > > gl.glGenTextures(1, cameraTexture, 0); > int tex = cameraTexture[0]; > gl.glBindTexture(GL10.GL_TEXTURE_2D, tex); > gl.glTexImage2D(GL10.GL_TEXTURE_2D, 0, > GL10.GL_LUMINANCE, 256, 256, 0, GL10.GL_LUMINANCE, > GL10.GL_UNSIGNED_BYTE, ByteBuffer.wrap(glCameraFrame)); > gl.glTexParameterf(GL10.GL_TEXTURE_2D, > GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); > } > } > > /** > * This method is called if a new image from the camera > arrived. The camera > * delivers images in a yuv color format. It is converted to a > black and white > * image with a size of 256x256 pixels (only a fraction of the > resulting image > * is used). Afterwards Rendering the frame (in the main loop > thread) is started by > * setting the newFrameLock to true. > */ > public void onPreviewFrame(byte[] yuvs, Camera camera) > { > int bwCounter=0; > int yuvsCounter=0; > for (int y=0;y<160;y++) { > System.arraycopy(yuvs, yuvsCounter, glCameraFrame, > bwCounter, 240); > yuvsCounter=yuvsCounter+240; > bwCounter=bwCounter+256; > } > } > > FloatBuffer makeFloatBuffer(float[] arr) { > ByteBuffer bb = > ByteBuffer.allocateDirect(arr.length*4); > bb.order(ByteOrder.nativeOrder()); > FloatBuffer fb = bb.asFloatBuffer(); > fb.put(arr); > fb.position(0); > return fb; > } > > final static float camObjCoord[] = new float[] { > // FRONT > -2.0f, -1.5f, 2.0f, > 2.0f, -1.5f, 2.0f, > -2.0f, 1.5f, 2.0f, > 2.0f, 1.5f, 2.0f, > // BACK > -2.0f, -1.5f, -2.0f, > -2.0f, 1.5f, -2.0f, > 2.0f, -1.5f, -2.0f, > 2.0f, 1.5f, -2.0f, > // LEFT > -2.0f, -1.5f, 2.0f, > -2.0f, 1.5f, 2.0f, > -2.0f, -1.5f, -2.0f, > -2.0f, 1.5f, -2.0f, > // RIGHT > 2.0f, -1.5f, -2.0f, > 2.0f, 1.5f, -2.0f, > 2.0f, -1.5f, 2.0f, > 2.0f, 1.5f, 2.0f, > // TOP > -2.0f, 1.5f, 2.0f, > 2.0f, 1.5f, 2.0f, > -2.0f, 1.5f, -2.0f, > 2.0f, 1.5f, -2.0f, > // BOTTOM > -2.0f, -1.5f, 2.0f, > -2.0f, -1.5f, -2.0f, > 2.0f, -1.5f, 2.0f, > 2.0f, -1.5f, -2.0f, > }; > final static float camTexCoords[] = new > float[] { > // Camera preview > 0.0f, 0.0f, > 0.9375f, 0.0f, > 0.0f, 0.625f, > 0.9375f, 0.625f, > > // BACK > 0.9375f, 0.0f, > 0.9375f, 0.625f, > 0.0f, 0.0f, > 0.0f, 0.625f, > // LEFT > 0.9375f, 0.0f, > 0.9375f, 0.625f, > 0.0f, 0.0f, > 0.0f, 0.625f, > // RIGHT > 0.9375f, 0.0f, > 0.9375f, 0.625f, > 0.0f, 0.0f, > 0.0f, 0.625f, > // TOP > 0.0f, 0.0f, > 0.9375f, 0.0f, > 0.0f, 0.625f, > 0.9375f, 0.625f, > // BOTTOM > 0.9375f, 0.0f, > 0.9375f, 0.625f, > 0.0f, 0.0f, > 0.0f, 0.625f > }; > > > > } -- 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