• Advertisement
Sign in to follow this  

GL_TEXTURE_RECTANGLE_ARB

This topic is 4007 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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

Share this post


Link to post
Share on other sites
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...

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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 string
std::string glExtensions = (char*)glGetString(GL_EXTENSIONS);

// check if texture rectangle is supported
if(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);



Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement