MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/Falcor / loadTextureFromDDS

Method loadTextureFromDDS

Source/Falcor/Utils/Image/ImageIO.cpp:580–620  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

578}
579
580ref<Texture> ImageIO::loadTextureFromDDS(ref<Device> pDevice, const std::filesystem::path& path, bool loadAsSrgb)
581{
582 ImportData data;
583 try
584 {
585 loadDDS(path, loadAsSrgb, data);
586 }
587 catch (const RuntimeError& e)
588 {
589 logWarning("Failed to load DDS image from '{}': {}", path, e.what());
590 return nullptr;
591 }
592
593 ref<Texture> pTex;
594 // TODO: Automatic mip generation
595 switch (data.type)
596 {
597 case Resource::Type::Texture1D:
598 pTex = pDevice->createTexture1D(data.width, data.format, data.arraySize, data.mipLevels, data.imageData.data());
599 break;
600 case Resource::Type::Texture2D:
601 pTex = pDevice->createTexture2D(data.width, data.height, data.format, data.arraySize, data.mipLevels, data.imageData.data());
602 break;
603 case Resource::Type::TextureCube:
604 pTex = pDevice->createTextureCube(data.width, data.height, data.format, data.arraySize / 6, data.mipLevels, data.imageData.data());
605 break;
606 case Resource::Type::Texture3D:
607 pTex = pDevice->createTexture3D(data.width, data.height, data.depth, data.format, data.mipLevels, data.imageData.data());
608 break;
609 default:
610 logWarning("Failed to load DDS image from '{}': Unrecognized texture type.", path);
611 return nullptr;
612 }
613
614 if (pTex != nullptr)
615 {
616 pTex->setSourcePath(path);
617 }
618
619 return pTex;
620}
621
622void ImageIO::saveToDDS(const std::filesystem::path& path, const Bitmap& bitmap, CompressionMode mode, bool generateMips)
623{

Callers

nothing calls this directly

Calls 8

loadDDSFunction · 0.85
whatMethod · 0.80
createTexture1DMethod · 0.80
createTexture2DMethod · 0.80
createTextureCubeMethod · 0.80
createTexture3DMethod · 0.80
logWarningFunction · 0.50
dataMethod · 0.45

Tested by

no test coverage detected