Cocoa Port:
- Fall back to using a legacy OpenGL context if the GPU driver rejects initializing a 3.2 Core Profile context.
This commit is contained in:
parent
d59ead2b51
commit
0ac489ade1
|
@ -405,6 +405,8 @@ public:
|
|||
virtual void SetViewportSizeOGL(GLsizei w, GLsizei h);
|
||||
};
|
||||
|
||||
OGLInfo* OGLInfoCreate_Legacy();
|
||||
|
||||
extern OGLInfo* (*OGLInfoCreate_Func)();
|
||||
extern void (*glBindVertexArrayDESMUME)(GLuint id);
|
||||
extern void (*glDeleteVertexArraysDESMUME)(GLsizei n, const GLuint *ids);
|
||||
|
|
|
@ -1316,19 +1316,36 @@ static std::unordered_map<NSScreen *, DisplayWindowController *> _screenMap; //
|
|||
(NSOpenGLPixelFormatAttribute)0, (NSOpenGLPixelFormatAttribute)0,
|
||||
(NSOpenGLPixelFormatAttribute)0 };
|
||||
|
||||
NSOpenGLPixelFormat *format = nil;
|
||||
|
||||
#ifdef _OGLDISPLAYOUTPUT_3_2_H_
|
||||
// If we can support a 3.2 Core Profile context, then request that in our
|
||||
// pixel format attributes.
|
||||
if (IsOSXVersionSupported(10, 7, 0))
|
||||
{
|
||||
attributes[9] = kCGLPFAOpenGLProfile;
|
||||
attributes[10] = (CGLPixelFormatAttribute)kCGLOGLPVersion_3_2_Core;
|
||||
|
||||
attributes[9] = NSOpenGLPFAOpenGLProfile;
|
||||
attributes[10] = NSOpenGLProfileVersion3_2Core;
|
||||
OGLInfoCreate_Func = &OGLInfoCreate_3_2;
|
||||
format = [[NSOpenGLPixelFormat alloc] initWithAttributes:attributes];
|
||||
|
||||
if (format == nil)
|
||||
{
|
||||
attributes[9] = NSOpenGLPFAOpenGLProfile;
|
||||
attributes[10] = NSOpenGLProfileVersionLegacy;
|
||||
OGLInfoCreate_Func = &OGLInfoCreate_Legacy;
|
||||
format = [[NSOpenGLPixelFormat alloc] initWithAttributes:attributes];
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
NSOpenGLPixelFormat *format = [[NSOpenGLPixelFormat alloc] initWithAttributes:attributes];
|
||||
if (format == nil)
|
||||
{
|
||||
attributes[9] = (NSOpenGLPixelFormatAttribute)0;
|
||||
attributes[10] = (NSOpenGLPixelFormatAttribute)0;
|
||||
OGLInfoCreate_Func = &OGLInfoCreate_Legacy;
|
||||
format = [[NSOpenGLPixelFormat alloc] initWithAttributes:attributes];
|
||||
}
|
||||
|
||||
context = [[NSOpenGLContext alloc] initWithFormat:format shareContext:nil];
|
||||
[format release];
|
||||
cglDisplayContext = (CGLContextObj)[context CGLContextObj];
|
||||
|
|
Loading…
Reference in New Issue