VK: Fix sometimes-missing images in GameScreen. Can't load textures from update(). (should probably make that possible though.. later).

This commit is contained in:
Henrik Rydgård 2018-11-22 23:53:58 +01:00
parent c789c34274
commit 3d20ddecc5
4 changed files with 7 additions and 6 deletions

View File

@ -742,7 +742,7 @@ void GameInfoCache::WaitUntilDone(std::shared_ptr<GameInfo> &info) {
}
// Runs on the main thread.
// Runs on the main thread. Only call from render() and similar, not update()!
std::shared_ptr<GameInfo> GameInfoCache::GetInfo(Draw::DrawContext *draw, const std::string &gamePath, int wantFlags) {
std::shared_ptr<GameInfo> info;
@ -800,7 +800,7 @@ void GameInfoCache::SetupTexture(std::shared_ptr<GameInfo> &info, Draw::DrawCont
if (tex.texture) {
tex.timeLoaded = time_now_d();
} else {
ERROR_LOG(G3D, "Failed creating texture");
ERROR_LOG(G3D, "Failed creating texture (%s)", info->GetTitle().c_str());
}
}
if ((info->wantFlags & GAMEINFO_WANTBGDATA) == 0) {

View File

@ -189,8 +189,8 @@ UI::EventReturn GameScreen::OnDeleteConfig(UI::EventParams &e)
return UI::EVENT_DONE;
}
void GameScreen::update() {
UIScreen::update();
void GameScreen::render() {
UIScreen::render();
I18NCategory *ga = GetI18NCategory("Game");

View File

@ -33,7 +33,7 @@ public:
GameScreen(const std::string &gamePath);
~GameScreen();
void update() override;
void render() override;
std::string tag() const override { return "game"; }

View File

@ -110,6 +110,7 @@ bool ManagedTexture::LoadFromFileData(const uint8_t *data, size_t dataSize, Imag
num_levels = 1;
}
// Free the old texture, if any.
if (texture_) {
delete texture_;
texture_ = nullptr;
@ -134,7 +135,7 @@ bool ManagedTexture::LoadFromFileData(const uint8_t *data, size_t dataSize, Imag
if (image[i])
free(image[i]);
}
return texture_ != nullptr;
return texture_;
}
bool ManagedTexture::LoadFromFile(const std::string &filename, ImageFileType type, bool generateMips) {