Add macOS windowing system to public API

* For now it expects a CALayer since this works around a MoltenVK bug
This commit is contained in:
baldurk
2018-09-05 12:50:58 +01:00
parent ca462ab03f
commit 65b567a944
7 changed files with 68 additions and 1 deletions
+11 -1
View File
@@ -316,6 +316,8 @@ void CaptureContext::LoadCaptureThreaded(const QString &captureFile, const QStri
m_XCBConnection = QX11Info::connection();
else
m_X11Display = QX11Info::display();
#elif defined(RENDERDOC_PLATFORM_APPLE)
m_CurWinSystem = WindowingSystem::MacOS;
#endif
m_StructuredFile = &r->GetStructuredFile();
@@ -1198,7 +1200,7 @@ int CaptureContext::ResourceNameCacheID()
}
#if defined(RENDERDOC_PLATFORM_APPLE)
extern "C" void makeNSViewMetalCompatible(void *handle);
extern "C" void *makeNSViewMetalCompatible(void *handle);
#endif
WindowingData CaptureContext::CreateWindowingData(QWidget *window)
@@ -1217,6 +1219,14 @@ WindowingData CaptureContext::CreateWindowingData(QWidget *window)
else
return CreateXlibWindowingData(m_X11Display, (Drawable)window->winId());
#elif defined(RENDERDOC_PLATFORM_APPLE)
void *view = (void *)window->winId();
void *layer = makeNSViewMetalCompatible(view);
return CreateMacOSWindowingData(layer);
#elif defined(RENDERDOC_PLATFORM_APPLE)
WindowingData ret = {WindowingSystem::Unknown};