- fixed invalidation of programmatic textures.

This is only relevant for Vulkan because it stores the descriptor sets with the material, not the hardware texture.
This commit is contained in:
Christoph Oelckers 2021-04-05 19:18:57 +02:00
parent c0f1949fb9
commit 869433ee2e
2 changed files with 4 additions and 3 deletions

View file

@ -48,7 +48,6 @@ void AnimTexture::SetFrameSize(int format, int width, int height)
FTexture::SetSize(width, height);
Image.Resize(width * height * (format == Paletted ? 1 : 3));
memset(Image.Data(), 0, Image.Size());
CleanHardwareTextures();
}
void AnimTexture::SetFrame(const uint8_t* palette, const void* data_)
@ -81,7 +80,6 @@ void AnimTexture::SetFrame(const uint8_t* palette, const void* data_)
}
else memcpy(Image.Data(), data_, Width * Height * (pixelformat == Paletted ? 1 : 3));
}
CleanHardwareTextures();
}
//===========================================================================
@ -156,10 +154,13 @@ void AnimTextures::SetSize(int format, int width, int height)
static_cast<AnimTexture*>(tex[1]->GetTexture())->SetFrameSize(format, width, height);
tex[0]->SetSize(width, height);
tex[1]->SetSize(width, height);
tex[0]->CleanHardwareData();
tex[1]->CleanHardwareData();
}
void AnimTextures::SetFrame(const uint8_t* palette, const void* data)
{
active ^= 1;
static_cast<AnimTexture*>(tex[active]->GetTexture())->SetFrame(palette, data);
tex[active]->CleanHardwareData();
}

View file

@ -256,7 +256,7 @@ void BuildTiles::InvalidateTile(int num)
if ((unsigned) num < MAXTILES)
{
auto tex = tiledata[num].texture;
tex->GetTexture()->SystemTextures.Clean();
tex->CleanHardwareData();
tiledata[num].rawCache.data.Clear();
}
}