--- src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm.orig +++ src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm @@ -6,12 +6,20 @@ // WindowSurfaceCGL.cpp: CGL implementation of egl::Surface for windows +#define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED + +#define __gl_h_ +#define __gltypes_h_ +#define __glext_h_ + #import "libANGLE/renderer/gl/cgl/WindowSurfaceCGL.h" #import #import #import +#include + #import "common/debug.h" #import "common/gl/cgl/FunctionsCGL.h" #include "common/unsafe_buffers.h" @@ -65,8 +73,11 @@ - (CGLPixelFormatObj)copyCGLPixelFormatForDisplayMask:(uint32_t)mask { CGLPixelFormatAttribute attribs[] = { - kCGLPFADisplayMask, static_cast(mask), kCGLPFAOpenGLProfile, + kCGLPFADisplayMask, static_cast(mask), +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 + kCGLPFAOpenGLProfile, static_cast(kCGLOGLPVersion_3_2_Core), +#endif static_cast(0)}; CGLPixelFormatObj pixelFormat = nullptr; @@ -157,7 +168,11 @@ : SurfaceGL(state), mSwapLayer(nil), mCurrentSwapId(0), +#ifdef __clang__ mLayer((__bridge CALayer *)layer), +#else + mLayer((CALayer *)layer), +#endif mContext(context), mFunctions(renderer->getFunctions()), mStateManager(renderer->getStateManager()), @@ -229,7 +244,11 @@ withContext:mContext withFunctions:mFunctions]; [mLayer addSublayer:mSwapLayer]; +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 [mSwapLayer setContentsScale:[mLayer contentsScale]]; +#else + [mSwapLayer setContentsScale:1.0]; +#endif mFunctions->genRenderbuffers(1, &mDSRenderbuffer); mStateManager->bindRenderbuffer(GL_RENDERBUFFER, mDSRenderbuffer); @@ -332,7 +351,11 @@ EGLint *height) const { CGRect frame = [mLayer frame]; +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 CGFloat scale = [mLayer contentsScale]; +#else + CGFloat scale = 1.0; +#endif if (width != nullptr) { *width = static_cast(CGRectGetWidth(frame) * scale);