GL_ARB_texture_non_power_of_two

I have been trying to figure out how to use extensions with a little success. But I have come across GL_ARB_texture_non_power_of_two and am a little confused. How does one use this extension? There are no New Procedures and Functions or New Tokens.

Any advice would be appreciated.

-Drew

If the extension is supported, then non power of two textures will load & work with existing functions.

No new functions or defines are required. You’ll have to use the extension strings to determine support. If you’re used to testing with getprocaddress then this may be new to you.

Hi,
If your drivers don’t support OpenGL 1.5, then the extension under 1.4 is GL_EXT_TEXTURE_RECTANGLE, code 0x84F5, same as GL_TEXTURE_RECTANGLE_NV. Just enable it and it’s available on Nvidia from NV1x and Ati from Radeon 7000.

Originally posted by Tzupy:
Hi,
If your drivers don’t support OpenGL 1.5, then the extension under 1.4 is GL_EXT_TEXTURE_RECTANGLE, code 0x84F5, same as GL_TEXTURE_RECTANGLE_NV. Just enable it and it’s available on Nvidia from NV1x and Ati from Radeon 7000.

I’m not sure EXT_texture_rect is the same as ARB_npotd. The ARB extension is much less restrictive (see the texture wrap modes, the mipmappings) - there may be good reasons to support NV,EXT but not ARB npotd textures.
As I see it ARB_npot is very different from NV_texture_rect and should not be confused. I have been told that EXT_texture_rect is the same as NV_texture_rect but I’ve never checked.

Hi,
Obli, you might be right about the ARB and NV extensions not being the same, but in the glspec15.pdf I have there’s not much about the npotd textures. I checked both the Ati and nVidia OpenGL extensions and couldn’t find the ARB_npotd. However, since the token codes for the texture_rectangle are the same for nVidia and Ati (0x84F5 to 0x84F8), then TEXTURE_RECTANGLE_NV and TEXTURE_RECTANGLE_EXT should be the same.
A vendor specific extension is usually promoted to EXT and then to ARB. If you know where more info on ARB_npotd is available, please post a link.

http://oss.sgi.com/projects/ogl-sample/registry/ARB/texture_non_power_of_two.txt

Thank you!

Originally posted by Tzupy:
A vendor specific extension is usually promoted to EXT and then to ARB. If you know where more info on ARB_npotd is available, please post a link.

However, this does not guarantees that the promoted extension behaves exactly like the “vendor-specific” one.
Clearly, lot of NV_vp has been “upgraded” to ARB_vp but they’re very different. I could also mention ARB_texture_env_crossbar.

By the way, with the extension string getting longer and longer, this “upgrading policy” has been deprecated. Now a vendor-specific extension will spot always the same string until it goes in the core.

Hi Obli,
I read the GL_ARB_texture_non_power_of_two specification and you are right, it’s
not an updated TEXTURE_RECTANGLE_EXT. But the driver problem remains. I checked on
Delphi3D for Hardware Information, and nVidia 53.03 and Ati 4.063 don’t seem to
support GL_ARB_texture_non_power_of_two. Maybe the moderator could be so kind
to tell us which drivers support it?