BsGpuProgIncludeImporter.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. //__________________________ Banshee Project - A modern game development toolkit _________________________________//
  2. //_____________________________________ www.banshee-project.com __________________________________________________//
  3. //________________________ Copyright (c) 2014 Marko Pintera. All rights reserved. ________________________________//
  4. #include "BsGpuProgIncludeImporter.h"
  5. #include "BsGpuProgInclude.h"
  6. #include "BsPath.h"
  7. #include "BsDataStream.h"
  8. #include "BsFileSystem.h"
  9. namespace BansheeEngine
  10. {
  11. GpuProgIncludeImporter::GpuProgIncludeImporter()
  12. :SpecificImporter()
  13. {
  14. }
  15. GpuProgIncludeImporter::~GpuProgIncludeImporter()
  16. {
  17. }
  18. bool GpuProgIncludeImporter::isExtensionSupported(const WString& ext) const
  19. {
  20. WString lowerCaseExt = ext;
  21. StringUtil::toLowerCase(lowerCaseExt);
  22. return lowerCaseExt == L"gpuproginc";
  23. }
  24. bool GpuProgIncludeImporter::isMagicNumberSupported(const UINT8* magicNumPtr, UINT32 numBytes) const
  25. {
  26. return true; // Plain-text so I don't even check for magic number
  27. }
  28. ResourcePtr GpuProgIncludeImporter::import(const Path& filePath, ConstImportOptionsPtr importOptions)
  29. {
  30. DataStreamPtr stream = FileSystem::openFile(filePath);
  31. String includeString = stream->getAsString();
  32. GpuProgIncludePtr gpuInclude = GpuProgInclude::_createPtr(includeString);
  33. WString fileName = filePath.getWFilename(false);
  34. gpuInclude->setName(toString(fileName));
  35. return gpuInclude;
  36. }
  37. }