Ugh, every day a new issue...
In this case, I'm moving from my title screen (text only) to an actual scene with textures. However, no matter which of my scenes I load, I get the following error:
D/ORX(11400): <DISPLAY> (orxDisplay_Android_LoadBitmap() - include/../plugins/Display/android/orxDisplay.c:1879) valid pkm file not found loading uncompressed file
D/ORX(11400): <ASSERT> (orxDisplay_Android_LoadBitmap() - include/../plugins/Display/android/orxDisplay.c:1965) [Assertion failed] : <eError == GL_NO_ERROR && "OpenGL error code: 0x501">
It seems the program can load my font images (.tga) just fine, but when it comes to my actual sprites (.png), it searches instead for a .pkm file, doesn't find it, and then crashes. I noticed that the OrxTest project has most of its sprites stored as .pkm, and that runs perfectly.
Am I supposed to convert the sprites myself, and if so are there instructions on doing so? I can't seem to find anything conclusive online. And if that's not the issue, what is? I know the OpenGL code 0x501 is thrown by glTexImage2D() when the texture has bad values (non power-of-two dimensions, &c), but it works with the OrxTest images without error.
My own silly error: I had a very long texture (part of an animation) that was 7680 pixels wide. Which is rather a lot.
Scaling the image down a bit (to 960 pixels wide) fixed the problem.
I was considering just deleting the post, but I thought if ever someone searches for that OpenGL error code in the forums, they could find this post and at least have something to try. Hope you don't mind me cluttering up the space!
As for texture size limit, I don't know the Android ones, but usually 2048 is a safe bet.
It's an attempt to reduce memory bandwidth on Android platform, but performance gains varies from devices... and is not really a big speedup
If you wanna try ETC1 texture, you need to know that alpha channel can't be encoded in this format, and it only support power of two texture sizes.
in OrxTest, I made a simple implementation to mix the RGB channels and the G channel from two .pkm to "recreate" an RGBA sprite using a custom shader, but the implementation is sub optimal and i never took the time to fix it... but you get the idea
you can create .pkm files with etc1tool which comes with Android SDK
BTW: maximum texture size is 2048x2048
Thanks for the info!