| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #include "BsSLImporter.h"
- #include "BsDataStream.h"
- #include "BsFileSystem.h"
- #include "BsSLFXCompiler.h"
- namespace BansheeEngine
- {
- SLImporter::SLImporter()
- :SpecificImporter()
- {
- }
- SLImporter::~SLImporter()
- {
- }
- bool SLImporter::isExtensionSupported(const WString& ext) const
- {
- WString lowerCaseExt = ext;
- StringUtil::toLowerCase(lowerCaseExt);
- return lowerCaseExt == L"bsl";
- }
- bool SLImporter::isMagicNumberSupported(const UINT8* magicNumPtr, UINT32 numBytes) const
- {
- return true; // Plain-text so I don't even check for magic number
- }
- ResourcePtr SLImporter::import(const Path& filePath, ConstImportOptionsPtr importOptions)
- {
- DataStreamPtr stream = FileSystem::openFile(filePath);
- String source = stream->getAsString();
- BSLFXCompileResult result = BSLFXCompiler::compile(source);
- if (result.shader != nullptr)
- result.shader->setName(filePath.getWFilename(false));
- else
- {
- LOGERR("Error while parsing shader FX code \"" + filePath.toString() + "\":\n" + result.errorMessage + ". Location: " +
- toString(result.errorLine) + " (" + toString(result.errorColumn) + ")");
- }
- return result.shader;
- }
- }
|