mirror of
https://github.com/Ryujinx/Opentk.git
synced 2025-03-29 18:06:52 +00:00
[Mac] OpenGL 3.x/4.x require core profile flag
SDL will fail to construct an OpenGL 3.x/4.x context on Mac OS X, unless ContextProfileFlags.CORE is specified. Fixes issue #44 Upstream enhancement request at https://bugzilla.libsdl.org/show_bug.cgi?id=2342
This commit is contained in:
parent
7f64945079
commit
a4d2a31386
|
@ -157,6 +157,8 @@ namespace OpenTK.Platform.SDL2
|
||||||
int major, int minor,
|
int major, int minor,
|
||||||
GraphicsContextFlags flags)
|
GraphicsContextFlags flags)
|
||||||
{
|
{
|
||||||
|
ContextProfileFlags cpflags = 0;
|
||||||
|
|
||||||
if (mode.AccumulatorFormat.BitsPerPixel > 0)
|
if (mode.AccumulatorFormat.BitsPerPixel > 0)
|
||||||
{
|
{
|
||||||
SDL.GL.SetAttribute(ContextAttribute.ACCUM_ALPHA_SIZE, mode.AccumulatorFormat.Alpha);
|
SDL.GL.SetAttribute(ContextAttribute.ACCUM_ALPHA_SIZE, mode.AccumulatorFormat.Alpha);
|
||||||
|
@ -203,6 +205,15 @@ namespace OpenTK.Platform.SDL2
|
||||||
{
|
{
|
||||||
SDL.GL.SetAttribute(ContextAttribute.CONTEXT_MAJOR_VERSION, major);
|
SDL.GL.SetAttribute(ContextAttribute.CONTEXT_MAJOR_VERSION, major);
|
||||||
SDL.GL.SetAttribute(ContextAttribute.CONTEXT_MINOR_VERSION, minor);
|
SDL.GL.SetAttribute(ContextAttribute.CONTEXT_MINOR_VERSION, minor);
|
||||||
|
|
||||||
|
// Workaround for https://github.com/opentk/opentk/issues/44
|
||||||
|
// Mac OS X desktop OpenGL 3.x/4.x contexts require require
|
||||||
|
// ContextProfileFlags.Core, otherwise they will fail to construct.
|
||||||
|
if (Configuration.RunningOnMacOS && major >= 3 &&
|
||||||
|
(flags & GraphicsContextFlags.Embedded) == 0)
|
||||||
|
{
|
||||||
|
cpflags |= ContextProfileFlags.CORE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((flags & GraphicsContextFlags.Debug) != 0)
|
if ((flags & GraphicsContextFlags.Debug) != 0)
|
||||||
|
@ -223,7 +234,6 @@ namespace OpenTK.Platform.SDL2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
{
|
{
|
||||||
ContextProfileFlags cpflags = 0;
|
|
||||||
if ((flags & GraphicsContextFlags.Embedded) != 0)
|
if ((flags & GraphicsContextFlags.Embedded) != 0)
|
||||||
{
|
{
|
||||||
cpflags |= ContextProfileFlags.ES;
|
cpflags |= ContextProfileFlags.ES;
|
||||||
|
|
Loading…
Reference in a new issue