OpenGL/Carbon/Cocoa Memory Management Autorelease issue
- by Stephen Furlani
Hoooboy,
I've got another doozy of a memory problem.
I'm creating a Carbon (AGL) Window, in C++ and it's telling me that I'm autorelease-ing it without a pool in place.
uh... what?
I thought Carbon existed outside of the NSAutoreleasePool...
When I call glEnable(GL_TEXTURE_2D) to do some stuff, it gives me a EXC_BAD_ACCESS warning - but if the AGL Window is never getting release'd, then shouldn't it exist?  Setting set objc-non-blocking-mode at (gdb) doesn't make the problem go away.
So I guess my question is WHAT IS UP WITH CARBON/COCOA/NSAutoreleasePool?
And... are there any resources for Objective-C++?  Because crap like this keeps happening to me.
Thanks,
-Stephen
--- CODE ---
Test Draw Function 
void Channel::frameDraw( const uint32_t frameID)
{
    eq::Channel::frameDraw( frameID );
            getWindow()->makeCurrent(false);
    glEnable(GL_TEXTURE_2D); // Throws Error Here
}
Make Current (Equalizer API from Eyescale)
void Window::makeCurrent( const bool useCache ) const
{
    if( useCache && getPipe()->isCurrent( this ))
        return;
    _osWindow->makeCurrent();
}
void AGLWindow::makeCurrent() const
{
    aglSetCurrentContext( _aglContext );
    AGLWindowIF::makeCurrent();
    if( _aglContext )
    {
        EQ_GL_ERROR( "After aglSetCurrentContext" );
    }
}
_aglContext is a valid memory location (i.e. not NULL) when I step through.
-S!