1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-01-26 03:52:01 +02:00

Fix caching

This commit is contained in:
Ivan Savenko 2023-02-22 16:25:30 +02:00
parent 6a89245bd4
commit d21c41e436
3 changed files with 5 additions and 2 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 B

View File

@ -113,6 +113,9 @@ size_t MapRendererContext::terrainImageIndex(size_t groupSize) const
bool MapRendererContext::tileAnimated(const int3 & coordinates) const
{
if (!isInMap(coordinates))
return false;
if(movementAnimation)
{
auto objects = getObjects(coordinates);

View File

@ -66,7 +66,7 @@ void MapViewCache::updateTile(const std::shared_ptr<const IMapRendererContext> &
newCacheEntry.tileY = coordinates.y;
newCacheEntry.checksum = mapRenderer->getTileChecksum(*context, coordinates);
if(cachedLevel == coordinates.z && oldCacheEntry == newCacheEntry)
if(cachedLevel == coordinates.z && oldCacheEntry == newCacheEntry && !context->tileAnimated(coordinates))
{
// debug code to check caching - cached tiles will slowly fade to black
//static const auto overlay = IImage::createFromFile("debug/cached");
@ -132,7 +132,7 @@ void MapViewCache::render(const std::shared_ptr<const IMapRendererContext> & con
int cacheY = (terrainChecksum.shape()[1] + y) % terrainChecksum.shape()[1];
int3 tile(x, y, model->getLevel());
if(lazyUpdate && tilesUpToDate[cacheX][cacheY] && !context->tileAnimated(tile))
if(lazyUpdate && tilesUpToDate[cacheX][cacheY])
continue;
Canvas source = getTile(tile);