Skip to content

Commit fa02ecf

Browse files
committed
Fix to dds texture loading
1 parent 91e1258 commit fa02ecf

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

examples_tests/44.LevelCurveExtraction/main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -491,9 +491,9 @@ int main()
491491
// finally get our GPU mesh
492492
auto gpumesh = driver->getGPUObjectsFromAssets(&mesh_raw, &mesh_raw+1)->front();
493493

494-
494+
auto boundingBoxSize = gpumesh->getBoundingBox().getExtent().getLength();
495495
//! we want to move around the scene and view it from different angles
496-
scene::ICameraSceneNode* camera = smgr->addCameraSceneNodeFPS(0,100.0f,0.5f);
496+
scene::ICameraSceneNode* camera = smgr->addCameraSceneNodeFPS(0,100.0f, boundingBoxSize * 0.0005f);
497497

498498
camera->setPosition(core::vector3df(-4,0,0));
499499
camera->setTarget(core::vector3df(0,0,0));

src/irr/asset/CGraphicsPipelineLoaderMTL.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -622,16 +622,27 @@ std::pair<core::smart_refctd_ptr<ICPUSpecializedShader>, core::smart_refctd_ptr<
622622
auto CGraphicsPipelineLoaderMTL::loadImages(const char* _relDir, const SMtl& _mtl, SContext& _ctx) -> image_views_set_t
623623
{
624624
images_set_t images;
625+
image_views_set_t views;
625626

626627
std::string relDir = _relDir;
627628
for (uint32_t i = 0u; i < images.size(); ++i)
628629
{
629630
SAssetLoadParams lp;
630-
if (_mtl.maps[i].size())
631+
if (_mtl.maps[i].size() )
631632
{
633+
io::path output;
634+
core::getFileNameExtension(output,_mtl.maps[i].c_str());
635+
if (output == ".dds")
636+
{
637+
auto bundle = interm_getAssetInHierarchy(m_assetMgr, relDir + _mtl.maps[i], lp, _ctx.topHierarchyLevel + ICPURenderpassIndependentPipeline::IMAGE_HIERARCHYLEVELS_BELOW, _ctx.loaderOverride);
638+
if (!bundle.isEmpty())
639+
views[i] = core::smart_refctd_ptr_static_cast<ICPUImageView>(bundle.getContents().begin()[0]);
640+
}else
641+
{
632642
auto bundle = interm_getAssetInHierarchy(m_assetMgr, relDir+_mtl.maps[i], lp, _ctx.topHierarchyLevel+ICPURenderpassIndependentPipeline::IMAGE_HIERARCHYLEVELS_BELOW, _ctx.loaderOverride);
633643
if (!bundle.isEmpty())
634644
images[i] = core::smart_refctd_ptr_static_cast<ICPUImage>(bundle.getContents().begin()[0]);
645+
}
635646
}
636647
}
637648

@@ -714,7 +725,6 @@ auto CGraphicsPipelineLoaderMTL::loadImages(const char* _relDir, const SMtl& _mt
714725
}
715726
}
716727

717-
image_views_set_t views;
718728
for (uint32_t i = 0u; i < views.size(); ++i)
719729
{
720730
if (!images[i])

0 commit comments

Comments
 (0)