trying to fix the crash

This commit is contained in:
Anakin 2017-01-05 13:44:53 +01:00
parent 0bbc0da324
commit 1d5d20cfb8
3 changed files with 23 additions and 6 deletions

View File

@ -29,7 +29,7 @@ private:
QVector<DrawInformation> m_drawList;
BoundingBox m_boundings;
void loadTexture(const char* filePath);
void loadTexture(const char* filePath, const char* fileName);
void clearData();
public slots:

View File

@ -98,7 +98,7 @@ void GeometryEngine::loadFile(const char* filePath)
emit sendMessage("loading textures..", 0);
// load the textures
for(auto& it : *textureNames)
loadTexture(std::string(path + it).c_str());
loadTexture(path.c_str(), it.c_str());
emit requestUpdate();
emit sendMessage("done..", 0);
@ -109,11 +109,26 @@ void GeometryEngine::loadFile(const char* filePath)
}
}
void GeometryEngine::loadTexture(const char* filePath)
void GeometryEngine::loadTexture(const char* filePath, const char* fileName)
{
bool loadSuccess;
QImage img = loadTga(filePath, loadSuccess);
bool loadSuccess(false);
QImage img;
//if (!strcmp(fileName, ""))
//{
// img = QImage(1, 1, QImage::Format_RGB32);
// img.fill(Qt::red);
//}
//else
img = loadTga((std::string(filePath) + std::string(fileName)).c_str(), loadSuccess);
//TODO: emit if not successfull
if (!loadSuccess)
{
QString msg = "WARNING: texture not found or corrupted: ";
msg += QString(fileName);
emit sendMessage(msg, 1);
}
// Load image to OglTexture
QOpenGLTexture* new_texture = new QOpenGLTexture(img.mirrored());

View File

@ -13,7 +13,9 @@ Feel free to use my code the way you like. But remember i used some public libra
licence, too.
### To Do
- tga with RLE cannot be opend
- loading 2 corrupted tga files => crash
- every mesh has empty tga => corrupted
- add default texture at the end
- optional display bones, shadow, collision,...
- integrate into a software:
-> list all msh under a directory,