From 4e3d43bb36ef9e5879d12d16bf436cce26a2f4fd Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Mon, 25 Jul 2022 20:51:39 +0100 Subject: [PATCH] Use NS::Bundle* & NS::Data* API instead of helpers Replaced call to ObjC::Get_defaultLibraryData() by using NS::Bundle* and NS::Data* methods directly from C++ --- renderdoc/driver/metal/metal_device.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/metal/metal_device.cpp b/renderdoc/driver/metal/metal_device.cpp index e09750d37..be92937f9 100644 --- a/renderdoc/driver/metal/metal_device.cpp +++ b/renderdoc/driver/metal/metal_device.cpp @@ -218,7 +218,19 @@ bool WrappedMTLDevice::Serialise_newDefaultLibrary(SerialiserType &ser, WrappedM bytebuf data; if(ser.IsWriting()) { - ObjC::Get_defaultLibraryData(data); + NS::String *defaultType = NS::String::string("default", NS::UTF8StringEncoding); + NS::String *metallibExt = NS::String::string("metallib", NS::UTF8StringEncoding); + NS::Bundle *mainAppBundle = NS::Bundle::mainBundle(); + NS::String *defaultLibaryPath = mainAppBundle->pathForResource(defaultType, metallibExt); + NS::Data *fileData = NS::Data::dataWithContentsOfFile(defaultLibaryPath); + dispatch_data_t dispatchData = + dispatch_data_create(fileData->bytes(), fileData->length(), dispatch_get_main_queue(), + DISPATCH_DATA_DESTRUCTOR_DEFAULT); + NS::Data *nsData = (NS::Data *)dispatchData; + data.assign((byte *)nsData->bytes(), nsData->length()); + dispatch_release(dispatchData); + defaultType->release(); + metallibExt->release(); } SERIALISE_ELEMENT_LOCAL(Device, this);