| 123 | } |
| 124 | |
| 125 | std::vector<SEGS::HTexture> getModelTextures(Urho3D::Context *ctx,std::vector<QString> &names) |
| 126 | { |
| 127 | uint32_t name_count = std::max<uint32_t>(1,names.size()); |
| 128 | std::vector<SEGS::HTexture> res; |
| 129 | res.reserve(name_count); |
| 130 | SEGS::HTexture white_tex = tryLoadTexture(ctx,"white.tga"); |
| 131 | |
| 132 | for(size_t tex_idx=0; tex_idx < names.size(); ++tex_idx ) |
| 133 | { |
| 134 | QFileInfo fi(names[tex_idx]); |
| 135 | QString baseName = fi.completeBaseName(); |
| 136 | if(baseName!=names[tex_idx]) |
| 137 | { |
| 138 | if(fi.fileName() == names[tex_idx]) |
| 139 | names[tex_idx] = baseName; |
| 140 | else |
| 141 | names[tex_idx] = fi.path()+"/"+baseName; |
| 142 | } |
| 143 | if ( names[tex_idx].contains("PORTAL",Qt::CaseInsensitive) ) |
| 144 | res.emplace_back(tryLoadTexture(ctx,"invisible.tga")); |
| 145 | else |
| 146 | res.emplace_back(tryLoadTexture(ctx,names[tex_idx])); |
| 147 | // replace missing texture with white |
| 148 | // TODO: make missing textures much more visible ( high contrast + text ? ) |
| 149 | if ( g_converted_textures.end()==g_converted_textures.find(res[tex_idx].idx) ) |
| 150 | { |
| 151 | res[tex_idx] = white_tex; |
| 152 | } |
| 153 | } |
| 154 | if (names.empty()) |
| 155 | res.emplace_back(white_tex); |
| 156 | return res; |
| 157 | } |
| 158 | |
| 159 | //! @} |
no test coverage detected