mirror of https://github.com/AxioDL/boo.git
CocoaWindow bug fix
This commit is contained in:
parent
5fe0d34a43
commit
ca105fcde6
|
@ -37,6 +37,7 @@ static const NSOpenGLPixelFormatAttribute PF_RGBA8_ATTRS[] =
|
||||||
NSOpenGLPFADoubleBuffer,
|
NSOpenGLPFADoubleBuffer,
|
||||||
NSOpenGLPFAColorSize, 24,
|
NSOpenGLPFAColorSize, 24,
|
||||||
NSOpenGLPFAAlphaSize, 8,
|
NSOpenGLPFAAlphaSize, 8,
|
||||||
|
0, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
static const NSOpenGLPixelFormatAttribute PF_RGBA8_Z24_ATTRS[] =
|
static const NSOpenGLPixelFormatAttribute PF_RGBA8_Z24_ATTRS[] =
|
||||||
|
@ -47,6 +48,7 @@ static const NSOpenGLPixelFormatAttribute PF_RGBA8_Z24_ATTRS[] =
|
||||||
NSOpenGLPFAColorSize, 24,
|
NSOpenGLPFAColorSize, 24,
|
||||||
NSOpenGLPFAAlphaSize, 8,
|
NSOpenGLPFAAlphaSize, 8,
|
||||||
NSOpenGLPFADepthSize, 24,
|
NSOpenGLPFADepthSize, 24,
|
||||||
|
0, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
static const NSOpenGLPixelFormatAttribute PF_RGBAF32_ATTRS[] =
|
static const NSOpenGLPixelFormatAttribute PF_RGBAF32_ATTRS[] =
|
||||||
|
@ -57,6 +59,7 @@ static const NSOpenGLPixelFormatAttribute PF_RGBAF32_ATTRS[] =
|
||||||
NSOpenGLPFAColorFloat,
|
NSOpenGLPFAColorFloat,
|
||||||
NSOpenGLPFAColorSize, 96,
|
NSOpenGLPFAColorSize, 96,
|
||||||
NSOpenGLPFAAlphaSize, 32,
|
NSOpenGLPFAAlphaSize, 32,
|
||||||
|
0, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
static const NSOpenGLPixelFormatAttribute PF_RGBAF32_Z24_ATTRS[] =
|
static const NSOpenGLPixelFormatAttribute PF_RGBAF32_Z24_ATTRS[] =
|
||||||
|
@ -68,6 +71,7 @@ static const NSOpenGLPixelFormatAttribute PF_RGBAF32_Z24_ATTRS[] =
|
||||||
NSOpenGLPFAColorSize, 96,
|
NSOpenGLPFAColorSize, 96,
|
||||||
NSOpenGLPFAAlphaSize, 32,
|
NSOpenGLPFAAlphaSize, 32,
|
||||||
NSOpenGLPFADepthSize, 24,
|
NSOpenGLPFADepthSize, 24,
|
||||||
|
0, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
static const NSOpenGLPixelFormatAttribute* PF_TABLE[] =
|
static const NSOpenGLPixelFormatAttribute* PF_TABLE[] =
|
||||||
|
@ -1228,14 +1232,17 @@ public:
|
||||||
|
|
||||||
WindowCocoa(const std::string& title, NSOpenGLContext* lastGLCtx, MetalContext* metalCtx)
|
WindowCocoa(const std::string& title, NSOpenGLContext* lastGLCtx, MetalContext* metalCtx)
|
||||||
{
|
{
|
||||||
m_nsWindow = [[WindowCocoaInternal alloc] initWithBooWindow:this title:title];
|
dispatch_sync(dispatch_get_main_queue(),
|
||||||
|
^{
|
||||||
|
m_nsWindow = [[WindowCocoaInternal alloc] initWithBooWindow:this title:title];
|
||||||
#if BOO_HAS_METAL
|
#if BOO_HAS_METAL
|
||||||
if (metalCtx->m_dev)
|
if (metalCtx->m_dev)
|
||||||
m_gfxCtx = static_cast<GraphicsContextCocoa*>(_GraphicsContextCocoaMetalNew(IGraphicsContext::EGraphicsAPI::Metal, this, metalCtx));
|
m_gfxCtx = static_cast<GraphicsContextCocoa*>(_GraphicsContextCocoaMetalNew(IGraphicsContext::EGraphicsAPI::Metal, this, metalCtx));
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
m_gfxCtx = static_cast<GraphicsContextCocoa*>(_GraphicsContextCocoaGLNew(IGraphicsContext::EGraphicsAPI::OpenGL3_3, this, lastGLCtx));
|
m_gfxCtx = static_cast<GraphicsContextCocoa*>(_GraphicsContextCocoaGLNew(IGraphicsContext::EGraphicsAPI::OpenGL3_3, this, lastGLCtx));
|
||||||
m_gfxCtx->initializeContext();
|
m_gfxCtx->initializeContext();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void _clearWindow()
|
void _clearWindow()
|
||||||
|
@ -1491,12 +1498,7 @@ public:
|
||||||
|
|
||||||
IWindow* _WindowCocoaNew(const SystemString& title, NSOpenGLContext* lastGLCtx, MetalContext* metalCtx)
|
IWindow* _WindowCocoaNew(const SystemString& title, NSOpenGLContext* lastGLCtx, MetalContext* metalCtx)
|
||||||
{
|
{
|
||||||
__block IWindow* window = nullptr;
|
return new WindowCocoa(title, lastGLCtx, metalCtx);
|
||||||
dispatch_sync(dispatch_get_main_queue(),
|
|
||||||
^{
|
|
||||||
window = new WindowCocoa(title, lastGLCtx, metalCtx);
|
|
||||||
});
|
|
||||||
return window;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue