6

My android application handles very large Bitmaps. Because of this, I turned hardware-acceleration off on the image views. However, some users have set the Developer-Option 'Force GPU-Acceleration' turned on. This leads to the error 'Bitmap too large to be uploaded into a texture'. If I check the view using isHardwareAccelerated(), it always returns false.

Is there any way to catch the OpenGL-Error 'Bitmap too large to be uploaded into a texture'?

TSGames
  • 679
  • 11
  • 25

2 Answers2

2

Bitmap is Composed of Pixels and you can count the number of pixels in the bitmap matrix ,, set a limit to your number of bitmap pixels . In OpenGl i can't say , but in general we can easily handle them , also there is a method
bitmap.inSampleSize();

if you assign

Bitmap.inSampleSize()= 1;

then the original bitmap pixel will be loaded.

Bitmap.inSampleSize()= 2;

then the pixels will become half of the original pixel.

Bitmap.inSampleSize() = 4

then the pixels will become 1/4 of the original pixel . This way you can reduce the size of the pixels in the bitmap , I have done this thing in my program , hopefully it will work with you too.

Pranav Sharma
  • 692
  • 2
  • 9
  • 22
  • Thanks for this hint, but I need the maximum quality. Therefore, I switched Hardware-Acceleration off on this view. However, I just need to know if the user has the "Force GPU-Acceleration" enabled which leads to this error. – TSGames Aug 24 '12 at 17:49
0

I have not worked with OpenGL on Android and therefore dont know is there is anything special one must do to catch uncaught exceptions or error. You could try to register a global exception handler and check if you are able to catch the OpenGL error there.

Community
  • 1
  • 1
bjorncs
  • 1,250
  • 11
  • 20
  • Thanks for this idea! However, since it isn't an acutal exception, this won't work. The app won't crash or anything, just the view won't draw. I just see the OpenGL-Error message in the debug/warn Log from Logcat. – TSGames Aug 24 '12 at 17:50