blob: d98fe38942c88db3a69e7a67ed3447fff84038f3 [file] [log] [blame]
/*
* Copyright 2024 Google LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#import "gl_context_helper.h"
#import <AvailabilityMacros.h>
#import <OpenGL/OpenGL.h>
#import <dlfcn.h>
#import <cstdio>
// cribbed from https://skia.googlesource.com/skia/+/78f0b8a7eda92e59943164caaaa00e01404643b9/tools/gpu/gl/mac/CreatePlatformGLTestContext_mac.cpp#46
bool initialize_gl_mac() {
CGLPixelFormatAttribute attributes[] = {
// base parameters
kCGLPFAOpenGLProfile,
(CGLPixelFormatAttribute) kCGLOGLPVersion_3_2_Core,
kCGLPFADoubleBuffer,
(CGLPixelFormatAttribute)NULL
};
CGLPixelFormatObj pixFormat;
GLint npix;
CGLChoosePixelFormat(attributes, &pixFormat, &npix);
if (nullptr == pixFormat) {
printf("CGLChoosePixelFormat failed.");
return false;
}
CGLContextObj context;
CGLCreateContext(pixFormat, nullptr, &context);
CGLReleasePixelFormat(pixFormat);
if (!context) {
printf("CGLCreateContext failed.");
return false;
}
CGLSetCurrentContext(context);
return true;
}