/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ #include "Utils.hpp" #ifdef _MSC_VER #include #else #include #endif #include namespace OpenVulkano { void Utils::SetThreadName(const std::string& name) { #ifdef _MSC_VER auto thisThread = ::GetCurrentThread(); std::wstring namew(name.begin(), name.end()); SetThreadDescription(thisThread, namew.c_str()); #elif __APPLE__ pthread_setname_np(name.c_str()); #else pthread_setname_np(pthread_self(), name.c_str()); #endif } Array Utils::ReadFile(const std::string& filePath, bool emptyOnMissing) { std::ifstream file(filePath, std::ios::ate | std::ios::binary); if (!file.is_open()) { if (emptyOnMissing) return {}; throw std::runtime_error("Failed to open file '" + filePath + "'!"); } const size_t fileSize = static_cast(file.tellg()); Array data(fileSize); file.seekg(0); file.read(data.Data(), fileSize); file.close(); return data; } }