Add ability to clean patch caches
This commit is contained in:
@@ -1125,42 +1125,67 @@ bool TerrainPatch::InitializeHeightMap()
|
||||
|
||||
float* TerrainPatch::GetHeightmapData()
|
||||
{
|
||||
PROFILE_CPU_NAMED("Terrain.GetHeightmapData");
|
||||
|
||||
if (_cachedHeightMap.HasItems())
|
||||
return _cachedHeightMap.Get();
|
||||
|
||||
PROFILE_CPU_NAMED("Terrain.GetHeightmapData");
|
||||
|
||||
CacheHeightData();
|
||||
|
||||
return _cachedHeightMap.Get();
|
||||
}
|
||||
|
||||
void TerrainPatch::ClearHeightmapCache()
|
||||
{
|
||||
PROFILE_CPU_NAMED("Terrain.ClearHeightmapCache");
|
||||
_cachedHeightMap.Clear();
|
||||
}
|
||||
|
||||
byte* TerrainPatch::GetHolesMaskData()
|
||||
{
|
||||
PROFILE_CPU_NAMED("Terrain.GetHolesMaskData");
|
||||
|
||||
if (_cachedHolesMask.HasItems())
|
||||
return _cachedHolesMask.Get();
|
||||
|
||||
PROFILE_CPU_NAMED("Terrain.GetHolesMaskData");
|
||||
|
||||
CacheHeightData();
|
||||
|
||||
return _cachedHolesMask.Get();
|
||||
}
|
||||
|
||||
void TerrainPatch::ClearHolesMaskCache()
|
||||
{
|
||||
PROFILE_CPU_NAMED("Terrain.ClearHolesMaskCache");
|
||||
_cachedHolesMask.Clear();
|
||||
}
|
||||
|
||||
Color32* TerrainPatch::GetSplatMapData(int32 index)
|
||||
{
|
||||
ASSERT(index >= 0 && index < TERRAIN_MAX_SPLATMAPS_COUNT);
|
||||
|
||||
PROFILE_CPU_NAMED("Terrain.GetSplatMapData");
|
||||
|
||||
if (_cachedSplatMap[index].HasItems())
|
||||
return _cachedSplatMap[index].Get();
|
||||
|
||||
PROFILE_CPU_NAMED("Terrain.GetSplatMapData");
|
||||
|
||||
CacheSplatData();
|
||||
|
||||
return _cachedSplatMap[index].Get();
|
||||
}
|
||||
|
||||
void TerrainPatch::ClearSplatMapCache()
|
||||
{
|
||||
PROFILE_CPU_NAMED("Terrain.ClearSplatMapCache");
|
||||
_cachedSplatMap->Clear();
|
||||
}
|
||||
|
||||
void TerrainPatch::ClearCache()
|
||||
{
|
||||
ClearHeightmapCache();
|
||||
ClearHolesMaskCache();
|
||||
ClearSplatMapCache();
|
||||
}
|
||||
|
||||
void TerrainPatch::CacheHeightData()
|
||||
{
|
||||
PROFILE_CPU_NAMED("Terrain.CacheHeightData");
|
||||
|
||||
@@ -229,12 +229,22 @@ public:
|
||||
/// <returns>The heightmap data.</returns>
|
||||
float* GetHeightmapData();
|
||||
|
||||
/// <summary>
|
||||
/// Clears cache of the heightmap data.
|
||||
/// </summary>
|
||||
void ClearHeightmapCache();
|
||||
|
||||
/// <summary>
|
||||
/// Gets the raw pointer to the holes mask data.
|
||||
/// </summary>
|
||||
/// <returns>The holes mask data.</returns>
|
||||
byte* GetHolesMaskData();
|
||||
|
||||
/// <summary>
|
||||
/// Clears cache of the holes mask data.
|
||||
/// </summary>
|
||||
void ClearHolesMaskCache();
|
||||
|
||||
/// <summary>
|
||||
/// Gets the raw pointer to the splat map data.
|
||||
/// </summary>
|
||||
@@ -242,6 +252,16 @@ public:
|
||||
/// <returns>The splat map data.</returns>
|
||||
Color32* GetSplatMapData(int32 index);
|
||||
|
||||
/// <summary>
|
||||
/// Clears cache of the splat map data.
|
||||
/// </summary>
|
||||
void ClearSplatMapCache();
|
||||
|
||||
/// <summary>
|
||||
/// Clears all caches.
|
||||
/// </summary>
|
||||
void ClearCache();
|
||||
|
||||
/// <summary>
|
||||
/// Modifies the terrain patch heightmap with the given samples.
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user