0 Replies
      Latest reply on Sep 12, 2019 6:41 PM by dan.erik.petersen.serato
      dan.erik.petersen.serato Level 1 Level 1 (0 points)

        I have a simple piece of code that successfully creates pbuffers when compiled against the macOS 10.12 SDK, but an update to the 10.13 SDK breaks things. I know that this tech is very deprecated.

         

        #import <Cocoa/Cocoa.h>
        #import <OpenGL/OpenGL.h>
        #import <OpenGL/gl3.h>
        #import <OpenGL/glext.h>
        
        
        int main( int argc, const char* argv[] )
        {
            GLsizei width = 1024;
            GLsizei height = 1024;
            GLenum target = GL_TEXTURE_RECTANGLE_EXT;
            GLenum internalFormat = GL_RGBA;
            GLint maxLevel = 0;
            
            CGLPBufferObj pBuffer = NULL;
            CGLError error = kCGLNoError;
            
            error = CGLCreatePBuffer( width, height, target, internalFormat, maxLevel, &pBuffer );
            
            if( error )
            {
                NSLog(@"CGL Error %@ : %s", @(error), CGLErrorString( error ) );
            }
            
            return 0;
        }
        

         

        Using the 10.12 SDK, I get kCGLNoError, but using 10.13 it delivers kCGLBadDrawable.

         

        Beyond transitioning to using e.g. framebuffer objects, what can I do to keep this piece of code going for a little bit longer?

         

        Note: it's not even necessary to fully recompile the generated binary against a different macOS SDK. Changing the Mach-O load command (changing a single byte) around VERSION_MIN_MAC_OSX to point to 10.12.0 rather than 10.13.0 also fixes things.