//********************************** Banshee Engine (www.banshee3d.com) **************************************************// //**************** Copyright (c) 2016 Marko Pintera (marko.pintera@gmail.com). All rights reserved. **********************// #include "Importer/BsShaderIncludeImporter.h" #include "Material/BsShaderInclude.h" #include "FileSystem/BsDataStream.h" #include "FileSystem/BsFileSystem.h" namespace bs { ShaderIncludeImporter::ShaderIncludeImporter() :SpecificImporter() { } ShaderIncludeImporter::~ShaderIncludeImporter() { } bool ShaderIncludeImporter::isExtensionSupported(const WString& ext) const { WString lowerCaseExt = ext; StringUtil::toLowerCase(lowerCaseExt); return lowerCaseExt == L"bslinc"; } bool ShaderIncludeImporter::isMagicNumberSupported(const UINT8* magicNumPtr, UINT32 numBytes) const { return true; // Plain-text so I don't even check for magic number } SPtr ShaderIncludeImporter::import(const Path& filePath, SPtr importOptions) { SPtr stream = FileSystem::openFile(filePath); String includeString = stream->getAsString(); SPtr gpuInclude = ShaderInclude::_createPtr(includeString); WString fileName = filePath.getWFilename(false); gpuInclude->setName(fileName); return gpuInclude; } }