GL_TEXTURE_RECTANGLE_ARB

Started by
5 comments, last by aznium 17 years, 2 months ago
GL_TEXTURE_RECTANGLE_ARB anyone recommend me an ATI card that supports this? basically i need npot textures . my current readeon 9000 and nvidia quadro fx 1500 doesnt seem to be capable
Advertisement
Well I would look at a x1950XT I think it's called? It should support OpenGL2.0 and that is required to use NPOT textures and you will not need to mess with GL_TEXTURE_RECTANGLE. I don't own an ATI card and haven't in quite awhile. So I can't say for sure. I know that some people still say ATI can't do vertex textures...
aznium,
Try to find the extension string, GL_EXT_texture_rectangle instead of GL_ARB_texture_rectangle. (They are exactly same extension, but the later is approved by ARB.)

I am pretty sure that Radeon 9000 supports GL_EXT_texture_rectangle because this extension was added OpenGL version 1.3. Even lower cards, such as Radeon 7000/7200, support it based upon ATI doc.

Note that the latest glext.h declares only GL_TEXTURE_RECTANGLE_ARB in it, but not GL_TEXTURE_RECTANGLE_EXT any more, because they are same. Therefore, if your card supports either GL_EXT_texture_rectangle or GL_ARB_texture_rectangle, then you can use GL_TEXTURE_RECTANGLE_ARB in your code.

Also, GL_NV_texture_rectangle for nVidia cards is equivalent to GL_ARB_texture_rectangle.
Hi,

i tried

glewGetExtension("GL_ARB_texture_rectangle")
glewGetExtension("GL_EXT_texture_rectangle")
glewGetExtension("GL_TEXTURE_RECTANGLE_EXT")
glewGetExtension("GL_TEXTURE_RECTANGLE_ARB")

on my quadro fx 1500 and all return false. perhaps i am doing it wrong?

i do not have glext.h , i am only including gl/glew.h
i dont know what a quadro fx 1500 is
nv3x or nv4x i guess if so then
glewGetExtension("GL_ARB_texture_rectangle") should work
make sure u have the latest drivers for your card print out the gl version string
Quote:Original post by aznium
glewGetExtension("GL_ARB_texture_rectangle")
glewGetExtension("GL_EXT_texture_rectangle")
glewGetExtension("GL_TEXTURE_RECTANGLE_EXT")
glewGetExtension("GL_TEXTURE_RECTANGLE_ARB")

Bottom 2 are not extension strings. They are enums to be used as texture target in glTexImage*D() or texture related functions. Try also GL_NV_texture_rectangle for nVidia card. Quadro FX 1500 is a decent professional OpenGL video card. It should support version 2.0 or greater.

You don't even need glext.h file if you want to use only GL_ARB_texture_rectangle. Just declare GL_TEXTURE_RECTANGLE_ARB in your code before using it. For example;
// declare enum for texture rectangle#define GL_TEXTURE_RECTANGLE_ARB 0x84F5...// get gl extension stringstd::string glExtensions = (char*)glGetString(GL_EXTENSIONS);// check if texture rectangle is supportedif(glExtensions.find("GL_ARB_texture_rectangle") != std::string::npos ||   glExtensions.find("GL_EXT_texture_rectangle") != std::string::npos ||   glExtensions.find("GL_NV_texture_rectangle") != std::string::npos){    textureTarget = GL_TEXTURE_RECTANGLE_ARB;    texRectSupported = true;}else{    textureTarget = GL_TEXTURE_2D;    texRectSupported = false;}...glTexImage2D(textureTarget, 0, internalFormat, imageWidth, imageHeight, 0, format, GL_UNSIGNED_BYTE, buffer);


i think i may know the problem . the thread that is executing the glewGetExtension is another thread from the one holding the gl context

i will try and change code and fix it . thx for help guys.


do you know the geforce equivalent of the quadro fx 1500?

This topic is closed to new replies.

Advertisement