I'm converting an app I've written from Canvas to OpenGL, and not having too hard of a time yet.
However, I've run into one snag that I can't seem to get around. My old app was threading image loads, because there are a ton of them, however, it looks like the OpenGL implementation protects itself to a single thread. I have a basic loadBitmap() function as follows: protected static void loadBitmap(GLSprite sprite, int resourceId) { int textureName = -1; if (mContext != null && mGl != null) { mGl.glGenTextures(1, mTextureNameWorkspace, 0); textureName = mTextureNameWorkspace[0]; mGl.glBindTexture(GL10.GL_TEXTURE_2D, textureName); mGl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST); mGl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); mGl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); mGl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); mGl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, GL10.GL_REPLACE); Bitmap bitmap = BitmapFactory.decodeResource(r, resourceId); GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0); mCropWorkspace[0] = 0; mCropWorkspace[1] = bitmap.getHeight(); mCropWorkspace[2] = bitmap.getWidth(); mCropWorkspace[3] = -bitmap.getHeight(); sprite.setTextureName(textureName); sprite.setSize(bitmap.getWidth(), bitmap.getHeight()); bitmap.recycle(); ((GL11) mGl).glTexParameteriv(GL10.GL_TEXTURE_2D, GL11Ext.GL_TEXTURE_CROP_RECT_OES, mCropWorkspace, 0); int error = mGl.glGetError(); if (error != GL10.GL_NO_ERROR) { // Logging } } This is based heavily off of the SpriteMethodTest in apps-for-android. If I make a call to this function from the thread that mGl was created from, everything goes fine. However, if I thread the calls to this function, the calls to glGenTextures() fail with a varying error code (changes with each run). I haven't been able to find any information regarding how to deal with this... Any help? Thanks - Dan --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---