This may or may not be related, but you are not enabling blending, and the first color you set in the pyramid has 0.5f alpha. That should probably be glColor3f().

Aside from that, It seems that you are not disabling texturing before drawing the pyramid, and are not providing it any texture coordinates, so it's texturing it with a single pixel, which is likely to be black.

As glEnable(GL_TEXTURE_2D) is commented out at the start I don't see how it ever textures anything, so I'm guessing it was not commented out when you took the screenshots.

in short.. call glEnable(GL_TEXTURE_2D) before the drawing of the cube, and glDisable(GL_TEXTURE_2D) before the pyramid, and I think your problem will disappear.

So, assuming you are using NSBitmapImageRep for loading your bitmap, starting from MacOS 10.4, the loadBitmap returns a GL_ARGB (Big endian) instead of GL_RGBA (
Little Endian). Apparently this change is undocumented (or if someone can point to the documentation stating it).