Simple questions

  1. All textures that are not power of two's gets rescaled, ending up looking very crappy. Seemingly it's the lwjgl MipMap.gluScaleImage(their own java implementation) that does a crappy job(plus eats tons of memory).

    Anyone know anything about this…It's mainly visible on hud ortho stuff but since the gluscaleimage is used for glubuild2dmipmaps etc it should concern everything…

  2. isnt it a little bit awkward that both batches and their containers are sceneelements? a quad is a sceneelement and it's batches are too…which is pretty confusing like with for example setZOrder, which is usually done through setting zorder on your quad, but doesnt work since it's the batches that are compared.
  1. We could do scaling with another method (e.g. awt as we already use it to load the images), but that scaling is only a workaround for newbies, isn't it? Usually you wouldn't have any non-power-of-2 texture files in a release, do you?

  2. yes, sounds strange to me, too (but no further insight from me :))

I agree with Irrisor there doesn't seem to be any reason why you would ever put a non-power-of-2 texture in your game without it being accidental. Personally I would suggest we just start throwing an exception if the texture is not a power of 2.  This way they would be aware of the problem rather than complaining on the forum that their texture looks like crap. :o

  1. We used to use the test for capability to handle pow 2 images.  I don't recall why we enforced pow 2 images…  some cards get really slow if you use non-pow2 images, even though they support them, and maybe the glu mipmap stuff needs pow 2 as well.  Maybe we need to provide an override?  Or maybe we put the rescaling into the TextureManager as a flag.

  2. I don't really see the inheritance itself as odd.  Maybe some of the fields need to be moved to geom batch.

Also, some cards don't pass the npot test, but since they're OpenGL 2.0 they can use them. (in OpenGL 2.0 npot support in mandatory and thus implied rather than supported through an extension).

cool, thanks for the answers! just wanted some intelligent input on those things :wink: