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.
no if you give the coords in 0..height 0..width it will cover the surface completely.
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...
yes. the option for the user to do wrap or clamp_to_edge would be nice.
Details for nVidia's non-pow2 extension. http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_texture_rectangle.txt
thanks for the info. this looks pretty close to the apple extension.
...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?
no, but it sure cuts down on wasted bandwidth. 640*480 is a hell of a lot fewer pixels than 1024*1024. also IMHO the power of two texture thing is just plain silly. how many images do you run across that conform to this?
The texture rectangle extension is available in the nvidia drivers... not sure about other vendors or MESA.
it would be good to check the support for this under linux and windows.
cgc
Daniel
PD-dev mailing list PD-dev@iem.kug.ac.at http://iem.kug.ac.at/cgi-bin/mailman/listinfo/pd-dev