I think that it's a good idea to keep separate pix_texture and pix_texture2 objects because power of 2 textures work differently from non-pow2 textures, no matter what tricks/extensions you use to allow the use of non-pow2 textures. These differences are in the support for wrap modes, borders etc.
Presently, a non-pow2 texture using texture coord scaling (as implemented by pix_texture2) will repeat but will include the black padding zones. Using GL_TEXTURE_RECTANGLE_NV repeat is not supported at all.
These behavioural differences can't be properly hidden, can they? And sooner or later it would be nice to expose the wrap mode and border settings for control via messages to the pix_textureX object...
Details for nVidia's non-pow2 extension. http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_texture_rectangle.txt
...well, at least for the MacOSX build, we need both
texture/texture2...this is because
we use an extension for non-power of 2 textures that makes for incredibly
fast
performance...unfortunately, I don't know if the extension
(GL_TEXTURE_RECTANGLE_EXT) is
available on other platforms?
Notwithstanding what I said above, the fast texture support on Mac OS X doesn't need to be used with non-pow2 textures, does it?
The texture rectangle extension is available in the nvidia drivers... not sure about other vendors or MESA.
Daniel