It will draw a quad at the correct spot just as it should. However, it will NOT display the texture. I have tried using glIsTexture(texName) and it always shows GL_FALSE. Any ideas?

edit: I know textures are working b/c my text is displaying correctly and it is formed from text->textures.

update: After further inspection, it seems that the function, load_png_image, is not correctly loading the data for the image. When I get back to work tomorrow, I will see if I can figure out what is going on with the data part of the Image struct. OSC, since it is your code, any specific ideas on why it would be returning the width, height, bit_depth, color_type, but not the data?

This, when added to the Nehe Lesson 6 tutorial, produces a very nice .png textured quad to appear on my screen. However, the exact same code will not work in my project. I figured I was creating the OpenGLView incorrectly, but it is setup the same. I will continue to work on my base code and see why it is not work. Thanks for the png code OSC.

You either use libpng or NSBitmapImageRep, not both, that's just asking for trouble. If you use NSBitmap, which is not recommended, you don't need to call libpng to load the png file as an openGL texture.

This function transforms an arbitrary NSBitmapImageRep into an RGBA pixel array, or any other format you specify in the call to initWithBitmapDataPlanes: pixelsWide: pixelsHigh:bitsPerSample:samplesPerPixel:hasAlpha:isPlanar:colorSpaceName:bitmap​Format:bytesPerRow:bitsPerPixel:.

Yes, there's of course a tradeoff between speed and certainty of your image format. I suppose you could check the NSBitmapImageRep's format before calling that function, and if it's already in a usable state, use its bitmapData directly. I have no idea how often that would be the case, though.