// Copyright (C) 2015 Jérôme Leclercq // This file is part of the "Nazara Engine - Renderer module" // For conditions of distribution and use, see copyright notice in Config.hpp #include #include #include #include namespace Nz { RenderDevice::~RenderDevice() = default; std::shared_ptr RenderDevice::InstantiateShaderStage(ShaderStageType type, ShaderLanguage lang, const std::filesystem::path& sourcePath) { File file(sourcePath); if (!file.Open(OpenMode_ReadOnly | OpenMode_Text)) { NazaraError("Failed to open \"" + sourcePath.generic_u8string() + '"'); return {}; } std::size_t length = static_cast(file.GetSize()); std::vector source(length); if (file.Read(&source[0], length) != length) { NazaraError("Failed to read program file"); return {}; } return InstantiateShaderStage(type, lang, source.data(), source.size()); } }