void RawImage::initFromFile(std::string filename) { if (filename.empty()) { SiegeThrow(Exception, "No filename provided for RawImage::initFromFile()!"); } std::ifstream file; if (!utils::filesys::tryOpen(file, filename, std::ifstream::binary)) { SiegeThrow(Exception, "Failed to open RAW image file \"" << filename << "\": '" << utils::filesys::getLastFileError() << "'."); } size_t fileSizeBytes = 0; utils::filesys::queryFileSize(filename, fileSizeBytes); if (fileSizeBytes == 0) { SiegeWarn("RAW image file \"" << filename << "\" appears to be empty! Making an empty image..."); // Make this an empty image. NOTE: Should this be changed? dispose(); srcFileName = std::move(filename); return; } ByteArray fileContents(fileSizeBytes); if (!file.read(reinterpret_cast<char *>(fileContents.data()), fileContents.size())) { SiegeThrow(Exception, "Failed to read " << utils::formatMemoryUnit(fileContents.size()) << " from RAW image file \"" << filename << "\"!"); } initFromMemory(std::move(fileContents), std::move(filename)); }
void TextureResource::reload(std::shared_ptr<ResourceManager>& rm) { if(!mPath.empty()) { const ResourceData& data = rm->getFileData(mPath); initFromMemory((const char*)data.ptr.get(), data.length); } }
void AspModel::initFromFile(std::string filename, const uint32_t importFlags) { if (filename.empty()) { SiegeThrow(Exception, "No filename provided for AspModel::initFromFile()!"); } std::ifstream file; if (!utils::filesys::tryOpen(file, filename, std::ifstream::binary)) { SiegeThrow(Exception, "Failed to open ASP file \"" << filename << "\": '" << utils::filesys::getLastFileError() << "'."); } size_t fileSizeBytes = 0; utils::filesys::queryFileSize(filename, fileSizeBytes); if (fileSizeBytes == 0) { SiegeWarn("ASP file \"" << filename << "\" appears to be empty..."); // Make this an empty model. // NOTE: Should this be changed to an error instead? dispose(); srcFileName = std::move(filename); return; } ByteArray fileContents(fileSizeBytes); if (!file.read(reinterpret_cast<char *>(fileContents.data()), fileContents.size())) { SiegeThrow(Exception, "Failed to read " << utils::formatMemoryUnit(fileContents.size()) << " from ASP mode file \"" << filename << "\"!"); } initFromMemory(std::move(fileContents), importFlags, std::move(filename)); }
RawImage::RawImage(ByteArray fileContents, std::string filename) : RawImage() { initFromMemory(std::move(fileContents), std::move(filename)); }
AspModel::AspModel(ByteArray fileContents, const uint32_t importFlags, std::string filename) { initFromMemory(std::move(fileContents), importFlags, std::move(filename)); }