diff --git a/Source/Editor/Utilities/ViewportIconsRenderer.cpp b/Source/Editor/Utilities/ViewportIconsRenderer.cpp
index 631e8b56f..889d94052 100644
--- a/Source/Editor/Utilities/ViewportIconsRenderer.cpp
+++ b/Source/Editor/Utilities/ViewportIconsRenderer.cpp
@@ -138,7 +138,7 @@ bool ViewportIconsRendererService::Init()
void ViewportIconsRendererService::Dispose()
{
- QuadModel.Unlink();
+ QuadModel = nullptr;
for (int32 i = 0; i < ARRAY_COUNT(InstanceBuffers); i++)
InstanceBuffers[i].Release();
ActorTypeToIconType.Clear();
diff --git a/Source/Engine/Content/AssetReference.h b/Source/Engine/Content/AssetReference.h
index c78aa5aef..658545d1a 100644
--- a/Source/Engine/Content/AssetReference.h
+++ b/Source/Engine/Content/AssetReference.h
@@ -78,14 +78,6 @@ public:
return _asset ? _asset->GetOrCreateManagedInstance() : nullptr;
}
- ///
- /// Clears the asset reference.
- ///
- FORCE_INLINE void Unlink()
- {
- OnSet(nullptr);
- }
-
///
/// Gets the asset property value as string.
///
@@ -135,7 +127,7 @@ protected:
if (_asset == asset)
{
Unload();
- Unlink();
+ OnSet(nullptr);
}
}
};
diff --git a/Source/Engine/Content/Assets/SkeletonMask.cpp b/Source/Engine/Content/Assets/SkeletonMask.cpp
index 4747e0e44..0742e2951 100644
--- a/Source/Engine/Content/Assets/SkeletonMask.cpp
+++ b/Source/Engine/Content/Assets/SkeletonMask.cpp
@@ -38,7 +38,7 @@ Asset::LoadResult SkeletonMask::load()
void SkeletonMask::unload(bool isReloading)
{
- Skeleton.Unlink();
+ Skeleton = nullptr;
_maskedNodes.Resize(0);
_mask.Resize(0);
}
diff --git a/Source/Engine/Debug/DebugDraw.cpp b/Source/Engine/Debug/DebugDraw.cpp
index 320a991a3..1f7e0c596 100644
--- a/Source/Engine/Debug/DebugDraw.cpp
+++ b/Source/Engine/Debug/DebugDraw.cpp
@@ -487,7 +487,7 @@ void DebugDrawService::Dispose()
DebugDrawPsDepthTest.Release();
DebugDrawPsDepthTest.Release();
SAFE_DELETE(DebugDrawVB);
- DebugDrawShader.Unlink();
+ DebugDrawShader = nullptr;
}
void DebugDraw::Draw(RenderContext& renderContext, GPUTextureView* target, GPUTextureView* depthBuffer, bool enableDepthTest)
diff --git a/Source/Engine/Foliage/Foliage.cpp b/Source/Engine/Foliage/Foliage.cpp
index dcfd50212..c38191adf 100644
--- a/Source/Engine/Foliage/Foliage.cpp
+++ b/Source/Engine/Foliage/Foliage.cpp
@@ -201,7 +201,7 @@ void Foliage::RemoveFoliageType(int32 index)
FoliageTypes[i].Index--;
}
auto& item = FoliageTypes[index];
- item.Model.Unlink();
+ item.Model = nullptr;
item.Entries.Release();
FoliageTypes.RemoveAtKeepOrder(index);
diff --git a/Source/Engine/Graphics/GPUDevice.cpp b/Source/Engine/Graphics/GPUDevice.cpp
index 47ec6d3a6..821031454 100644
--- a/Source/Engine/Graphics/GPUDevice.cpp
+++ b/Source/Engine/Graphics/GPUDevice.cpp
@@ -13,10 +13,10 @@
#include "Engine/Platform/Windows/WindowsWindow.h"
#include "Engine/Render2D/Render2D.h"
#include "Engine/Engine/CommandLine.h"
+#include "Engine/Engine/Engine.h"
#include "Engine/Engine/EngineService.h"
#include "Engine/Profiler/Profiler.h"
#include "Engine/Renderer/RenderList.h"
-#include "Engine/Engine/Engine.h"
#include "Engine/Core/Utilities.h"
GPUPipelineState* GPUPipelineState::Spawn(const SpawnParams& params)
@@ -230,10 +230,10 @@ void GPUDevice::preDispose()
RenderTargetPool::Flush();
// Release resources
- _res->DefaultMaterial.Unlink();
- _res->DefaultNormalMap.Unlink();
- _res->DefaultWhiteTexture.Unlink();
- _res->DefaultBlackTexture.Unlink();
+ _res->DefaultMaterial = nullptr;
+ _res->DefaultNormalMap = nullptr;
+ _res->DefaultWhiteTexture = nullptr;
+ _res->DefaultBlackTexture = nullptr;
SAFE_DELETE_GPU_RESOURCE(_res->PS_CopyLinear);
SAFE_DELETE_GPU_RESOURCE(_res->PS_Clear);
SAFE_DELETE_GPU_RESOURCE(_res->FullscreenTriangleVB);
diff --git a/Source/Engine/Level/Scene/Lightmap.cpp b/Source/Engine/Level/Scene/Lightmap.cpp
index b55b603f5..4a2eec796 100644
--- a/Source/Engine/Level/Scene/Lightmap.cpp
+++ b/Source/Engine/Level/Scene/Lightmap.cpp
@@ -79,7 +79,7 @@ void Lightmap::EnsureSize(int32 size)
{
// Unlink texture that cannot be loaded
LOG(Warning, "Lightmap::EnsureSize failed to load texture");
- texture.Unlink();
+ texture = nullptr;
}
else
{
@@ -88,7 +88,7 @@ void Lightmap::EnsureSize(int32 size)
{
// Unlink texture and import new with valid size
LOG(Info, "Changing lightmap {0}:{1} size from {2} to {3}", _index, textureIndex, texture->GetTexture()->Size(), size);
- texture.Unlink();
+ texture = nullptr;
}
}
}
diff --git a/Source/Engine/Level/Scene/Scene.cpp b/Source/Engine/Level/Scene/Scene.cpp
index b86610ab9..d38bd4225 100644
--- a/Source/Engine/Level/Scene/Scene.cpp
+++ b/Source/Engine/Level/Scene/Scene.cpp
@@ -298,8 +298,8 @@ void Scene::OnDeleteObject()
{
// Cleanup
LightmapsData.UnloadLightmaps();
- CSGData.Model.Unlink();
- CSGData.CollisionData.Unlink();
+ CSGData.Model = nullptr;
+ CSGData.CollisionData = nullptr;
// Base
Actor::OnDeleteObject();
diff --git a/Source/Engine/Navigation/NavMesh.cpp b/Source/Engine/Navigation/NavMesh.cpp
index ef90e2989..fe7756049 100644
--- a/Source/Engine/Navigation/NavMesh.cpp
+++ b/Source/Engine/Navigation/NavMesh.cpp
@@ -40,8 +40,7 @@ void NavMesh::SaveNavMesh()
// Check if has no navmesh data generated (someone could just remove navmesh volumes or generate for empty scene)
if (Data.Tiles.IsEmpty())
{
- // Keep asset reference valid
- DataAsset.Unlink();
+ DataAsset = nullptr;
return;
}
diff --git a/Source/Engine/Particles/ParticleManager.cpp b/Source/Engine/Particles/ParticleManager.cpp
index c83aacbbf..429420950 100644
--- a/Source/Engine/Particles/ParticleManager.cpp
+++ b/Source/Engine/Particles/ParticleManager.cpp
@@ -557,7 +557,7 @@ void OnShaderReloading(Asset* obj)
void CleanupGPUParticlesSorting()
{
- GPUParticlesSorting.Unlink();
+ GPUParticlesSorting = nullptr;
}
void DrawEmitterGPU(RenderContext& renderContext, ParticleBuffer* buffer, DrawCall& drawCall, DrawPass drawModes, StaticFlags staticFlags, ParticleEmitterInstance& emitterData, const RenderModulesIndices& renderModulesIndices)
diff --git a/Source/Engine/Render2D/Render2D.cpp b/Source/Engine/Render2D/Render2D.cpp
index 2413686aa..1aed94a8e 100644
--- a/Source/Engine/Render2D/Render2D.cpp
+++ b/Source/Engine/Render2D/Render2D.cpp
@@ -522,7 +522,7 @@ void Render2DService::Dispose()
Lines.Resize(0);
Lines2.Resize(0);
- GUIShader.Unlink();
+ GUIShader = nullptr;
PsoDepth.Dispose();
PsoNoDepth.Dispose();
diff --git a/Source/Engine/Renderer/AmbientOcclusionPass.cpp b/Source/Engine/Renderer/AmbientOcclusionPass.cpp
index dfae20792..e72de509b 100644
--- a/Source/Engine/Renderer/AmbientOcclusionPass.cpp
+++ b/Source/Engine/Renderer/AmbientOcclusionPass.cpp
@@ -196,7 +196,7 @@ void AmbientOcclusionPass::Dispose()
SAFE_DELETE_GPU_RESOURCE(_psApplyHalf);
// Release asset
- _shader.Unlink();
+ _shader = nullptr;
}
void AmbientOcclusionPass::Render(RenderContext& renderContext)
diff --git a/Source/Engine/Renderer/AntiAliasing/FXAA.cpp b/Source/Engine/Renderer/AntiAliasing/FXAA.cpp
index 159e481a6..3dcb6ae71 100644
--- a/Source/Engine/Renderer/AntiAliasing/FXAA.cpp
+++ b/Source/Engine/Renderer/AntiAliasing/FXAA.cpp
@@ -55,11 +55,9 @@ void FXAA::Dispose()
// Base
RendererPass::Dispose();
- // Delete pipeline state
+ // Cleanup
_psFXAA.Delete();
-
- // Release asset
- _shader.Unlink();
+ _shader = nullptr;
}
void FXAA::Render(RenderContext& renderContext, GPUTexture* input, GPUTextureView* output)
diff --git a/Source/Engine/Renderer/AntiAliasing/SMAA.cpp b/Source/Engine/Renderer/AntiAliasing/SMAA.cpp
index cf7e53f40..7c1ee0c16 100644
--- a/Source/Engine/Renderer/AntiAliasing/SMAA.cpp
+++ b/Source/Engine/Renderer/AntiAliasing/SMAA.cpp
@@ -82,15 +82,13 @@ void SMAA::Dispose()
// Base
RendererPass::Dispose();
- // Delete pipeline states
+ // Cleanup
_psEdge.Delete();
_psBlend.Delete();
SAFE_DELETE_GPU_RESOURCE(_psNeighbor);
-
- // Release assets
- _shader.Unlink();
- _areaTex.Unlink();
- _searchTex.Unlink();
+ _shader = nullptr;
+ _areaTex = nullptr;
+ _searchTex = nullptr;
}
void SMAA::Render(RenderContext& renderContext, GPUTexture* input, GPUTextureView* output)
diff --git a/Source/Engine/Renderer/AntiAliasing/TAA.cpp b/Source/Engine/Renderer/AntiAliasing/TAA.cpp
index 7b8dfe17f..a1fee93ad 100644
--- a/Source/Engine/Renderer/AntiAliasing/TAA.cpp
+++ b/Source/Engine/Renderer/AntiAliasing/TAA.cpp
@@ -42,8 +42,9 @@ void TAA::Dispose()
// Base
RendererPass::Dispose();
+ // Cleanup
_psTAA = nullptr;
- _shader.Unlink();
+ _shader = nullptr;
}
bool TAA::NeedMotionVectors(RenderContext& renderContext)
diff --git a/Source/Engine/Renderer/AtmospherePreCompute.cpp b/Source/Engine/Renderer/AtmospherePreCompute.cpp
index 66576e55f..cef9964ca 100644
--- a/Source/Engine/Renderer/AtmospherePreCompute.cpp
+++ b/Source/Engine/Renderer/AtmospherePreCompute.cpp
@@ -305,7 +305,7 @@ void release()
SAFE_DELETE_GPU_RESOURCE(_psInscatterS);
SAFE_DELETE_GPU_RESOURCE(_psInscatterN);
SAFE_DELETE_GPU_RESOURCE(_psCopyInscatterNAdd);
- _shader.Unlink();
+ _shader = nullptr;
SAFE_DELETE(_task);
SAFE_DELETE_GPU_RESOURCE(AtmosphereTransmittance);
SAFE_DELETE_GPU_RESOURCE(AtmosphereIrradiance);
diff --git a/Source/Engine/Renderer/ColorGradingPass.cpp b/Source/Engine/Renderer/ColorGradingPass.cpp
index 94caf2b46..c40248caa 100644
--- a/Source/Engine/Renderer/ColorGradingPass.cpp
+++ b/Source/Engine/Renderer/ColorGradingPass.cpp
@@ -121,11 +121,9 @@ void ColorGradingPass::Dispose()
// Base
RendererPass::Dispose();
- // Delete pipeline state
+ // Cleanup
_psLut.Delete();
-
- // Release assets
- _shader.Unlink();
+ _shader = nullptr;
}
GPUTexture* ColorGradingPass::RenderLUT(RenderContext& renderContext)
diff --git a/Source/Engine/Renderer/DepthOfFieldPass.cpp b/Source/Engine/Renderer/DepthOfFieldPass.cpp
index b5382ec72..4e4ee7ed1 100644
--- a/Source/Engine/Renderer/DepthOfFieldPass.cpp
+++ b/Source/Engine/Renderer/DepthOfFieldPass.cpp
@@ -66,21 +66,17 @@ void DepthOfFieldPass::Dispose()
// Base
RendererPass::Dispose();
- // Delete pipeline states
+ // Cleanup
SAFE_DELETE_GPU_RESOURCE(_psDofDepthBlurGeneration);
SAFE_DELETE_GPU_RESOURCE(_psBokehGeneration);
SAFE_DELETE_GPU_RESOURCE(_psDoNotGenerateBokeh);
SAFE_DELETE_GPU_RESOURCE(_psBokeh);
SAFE_DELETE_GPU_RESOURCE(_psBokehComposite);
-
- // Release assets
- _shader.Unlink();
- _defaultBokehHexagon.Unlink();
- _defaultBokehOctagon.Unlink();
- _defaultBokehCircle.Unlink();
- _defaultBokehCross.Unlink();
-
- // Release resources
+ _shader = nullptr;
+ _defaultBokehHexagon = nullptr;
+ _defaultBokehOctagon = nullptr;
+ _defaultBokehCircle = nullptr;
+ _defaultBokehCross = nullptr;
SAFE_DELETE_GPU_RESOURCE(_bokehBuffer);
SAFE_DELETE_GPU_RESOURCE(_bokehIndirectArgsBuffer);
}
diff --git a/Source/Engine/Renderer/EyeAdaptationPass.cpp b/Source/Engine/Renderer/EyeAdaptationPass.cpp
index a85e0a72b..3bfbb9daa 100644
--- a/Source/Engine/Renderer/EyeAdaptationPass.cpp
+++ b/Source/Engine/Renderer/EyeAdaptationPass.cpp
@@ -244,15 +244,13 @@ void EyeAdaptationPass::Dispose()
// Base
RendererPass::Dispose();
- // Delete pipeline states
+ // Cleanup
SAFE_DELETE_GPU_RESOURCE(_psManual);
SAFE_DELETE_GPU_RESOURCE(_psLuminanceMap);
SAFE_DELETE_GPU_RESOURCE(_psBlendLuminance);
SAFE_DELETE_GPU_RESOURCE(_psApplyLuminance);
SAFE_DELETE_GPU_RESOURCE(_psHistogram);
-
- // Release asset
- _shader.Unlink();
+ _shader = nullptr;
}
bool EyeAdaptationPass::setupResources()
diff --git a/Source/Engine/Renderer/ForwardPass.cpp b/Source/Engine/Renderer/ForwardPass.cpp
index ad178fe67..93ccf0750 100644
--- a/Source/Engine/Renderer/ForwardPass.cpp
+++ b/Source/Engine/Renderer/ForwardPass.cpp
@@ -62,11 +62,9 @@ void ForwardPass::Dispose()
// Base
RendererPass::Dispose();
- // Delete pipeline states
+ // Cleanup
SAFE_DELETE_GPU_RESOURCE(_psApplyDistortion);
-
- // Release assets
- _shader.Unlink();
+ _shader = nullptr;
}
void ForwardPass::Render(RenderContext& renderContext, GPUTexture* input, GPUTexture* output)
diff --git a/Source/Engine/Renderer/GBufferPass.cpp b/Source/Engine/Renderer/GBufferPass.cpp
index b9e91ee01..2165e25dc 100644
--- a/Source/Engine/Renderer/GBufferPass.cpp
+++ b/Source/Engine/Renderer/GBufferPass.cpp
@@ -77,14 +77,11 @@ void GBufferPass::Dispose()
// Base
RendererPass::Dispose();
- // Delete pipeline state
+ // Cleanup
SAFE_DELETE_GPU_RESOURCE(_psDebug);
-
- // Release assets
- _gBufferShader.Unlink();
- _skyModel.Unlink();
- _boxModel.Unlink();
-
+ _gBufferShader = nullptr;
+ _skyModel = nullptr;
+ _boxModel = nullptr;
#if USE_EDITOR
SAFE_DELETE(_lightmapUVsDensityMaterialShader);
SAFE_DELETE(_vertexColorsMaterialShader);
diff --git a/Source/Engine/Renderer/HistogramPass.cpp b/Source/Engine/Renderer/HistogramPass.cpp
index fe16dbd19..e8bfc9fad 100644
--- a/Source/Engine/Renderer/HistogramPass.cpp
+++ b/Source/Engine/Renderer/HistogramPass.cpp
@@ -102,8 +102,9 @@ void HistogramPass::Dispose()
// Base
RendererPass::Dispose();
+ // Cleanup
SAFE_DELETE_GPU_RESOURCE(_histogramBuffer);
- _shader.Unlink();
+ _shader = nullptr;
}
bool HistogramPass::setupResources()
diff --git a/Source/Engine/Renderer/LightPass.cpp b/Source/Engine/Renderer/LightPass.cpp
index d021ede01..c79033c37 100644
--- a/Source/Engine/Renderer/LightPass.cpp
+++ b/Source/Engine/Renderer/LightPass.cpp
@@ -164,7 +164,7 @@ void LightPass::Dispose()
// Base
RendererPass::Dispose();
- // Delete pipeline states
+ // Cleanup
_psLightDir.Delete();
_psLightPointNormal.Delete();
_psLightPointInverted.Delete();
@@ -172,9 +172,7 @@ void LightPass::Dispose()
_psLightSpotInverted.Delete();
SAFE_DELETE_GPU_RESOURCE(_psLightSkyNormal);
SAFE_DELETE_GPU_RESOURCE(_psLightSkyInverted);
-
- // Release assets
- _sphereModel.Unlink();
+ _sphereModel = nullptr;
}
void LightPass::RenderLight(RenderContext& renderContext, GPUTextureView* lightBuffer)
diff --git a/Source/Engine/Renderer/MotionBlurPass.cpp b/Source/Engine/Renderer/MotionBlurPass.cpp
index f10ef442b..689916708 100644
--- a/Source/Engine/Renderer/MotionBlurPass.cpp
+++ b/Source/Engine/Renderer/MotionBlurPass.cpp
@@ -134,16 +134,14 @@ void MotionBlurPass::Dispose()
// Base
RendererPass::Dispose();
- // Delete pipeline state
+ // Cleanup
SAFE_DELETE_GPU_RESOURCE(_psCameraMotionVectors);
SAFE_DELETE_GPU_RESOURCE(_psMotionVectorsDebug);
SAFE_DELETE_GPU_RESOURCE(_psTileMax);
SAFE_DELETE_GPU_RESOURCE(_psTileMaxVariable);
SAFE_DELETE_GPU_RESOURCE(_psNeighborMax);
SAFE_DELETE_GPU_RESOURCE(_psMotionBlur);
-
- // Release asset
- _shader.Unlink();
+ _shader = nullptr;
}
void MotionBlurPass::RenderMotionVectors(RenderContext& renderContext)
diff --git a/Source/Engine/Renderer/PostProcessingPass.cpp b/Source/Engine/Renderer/PostProcessingPass.cpp
index 02469aa81..4e5b4d4fb 100644
--- a/Source/Engine/Renderer/PostProcessingPass.cpp
+++ b/Source/Engine/Renderer/PostProcessingPass.cpp
@@ -167,19 +167,17 @@ void PostProcessingPass::Dispose()
// Base
RendererPass::Dispose();
- // Delete pipeline states
+ // Cleanup
SAFE_DELETE_GPU_RESOURCE(_psThreshold);
SAFE_DELETE_GPU_RESOURCE(_psScale);
SAFE_DELETE_GPU_RESOURCE(_psBlurH);
SAFE_DELETE_GPU_RESOURCE(_psBlurV);
SAFE_DELETE_GPU_RESOURCE(_psGenGhosts);
_psComposite.Delete();
-
- // Release assets
- _shader.Unlink();
- _defaultLensColor.Unlink();
- _defaultLensDirt.Unlink();
- _defaultLensStar.Unlink();
+ _shader = nullptr;
+ _defaultLensColor = nullptr;
+ _defaultLensDirt = nullptr;
+ _defaultLensStar = nullptr;
}
void PostProcessingPass::Render(RenderContext& renderContext, GPUTexture* input, GPUTexture* output, GPUTexture* colorGradingLUT)
diff --git a/Source/Engine/Renderer/ProbesRenderer.cpp b/Source/Engine/Renderer/ProbesRenderer.cpp
index 6688c4716..3f48f8c6e 100644
--- a/Source/Engine/Renderer/ProbesRenderer.cpp
+++ b/Source/Engine/Renderer/ProbesRenderer.cpp
@@ -333,7 +333,7 @@ void ProbesRenderer::Release()
SAFE_DELETE_GPU_RESOURCE(_psAccDiffuseIrradiance);
SAFE_DELETE_GPU_RESOURCE(_psAccumulateCubeFaces);
SAFE_DELETE_GPU_RESOURCE(_psCopyFrameLHB);
- _shader.Unlink();
+ _shader = nullptr;
SAFE_DELETE_GPU_RESOURCE(_output);
SAFE_DELETE(_task);
SAFE_DELETE_GPU_RESOURCE(_probe);
diff --git a/Source/Engine/Renderer/ReflectionsPass.cpp b/Source/Engine/Renderer/ReflectionsPass.cpp
index 40f3aeb30..c3108cf0d 100644
--- a/Source/Engine/Renderer/ReflectionsPass.cpp
+++ b/Source/Engine/Renderer/ReflectionsPass.cpp
@@ -324,15 +324,13 @@ void ReflectionsPass::Dispose()
// Base
RendererPass::Dispose();
- // Delete pipeline states
+ // Cleanup
SAFE_DELETE_GPU_RESOURCE(_psProbeNormal);
SAFE_DELETE_GPU_RESOURCE(_psProbeInverted);
SAFE_DELETE_GPU_RESOURCE(_psCombinePass);
-
- // Release assets
- _shader.Unlink();
- _sphereModel.Unlink();
- _preIntegratedGF.Unlink();
+ _shader = nullptr;
+ _sphereModel = nullptr;
+ _preIntegratedGF = nullptr;
}
bool sortProbes(EnvironmentProbe* const& p1, EnvironmentProbe* const& p2)
diff --git a/Source/Engine/Renderer/ScreenSpaceReflectionsPass.cpp b/Source/Engine/Renderer/ScreenSpaceReflectionsPass.cpp
index 491f53262..5e81db45c 100644
--- a/Source/Engine/Renderer/ScreenSpaceReflectionsPass.cpp
+++ b/Source/Engine/Renderer/ScreenSpaceReflectionsPass.cpp
@@ -152,16 +152,14 @@ void ScreenSpaceReflectionsPass::Dispose()
// Base
RendererPass::Dispose();
- // Delete pipeline states
+ // Cleanup
SAFE_DELETE_GPU_RESOURCE(_psRayTracePass);
SAFE_DELETE_GPU_RESOURCE(_psCombinePass);
SAFE_DELETE_GPU_RESOURCE(_psTemporalPass);
SAFE_DELETE_GPU_RESOURCE(_psMixPass);
_psResolvePass.Delete();
-
- // Release assets
- _shader.Unlink();
- _preIntegratedGF.Unlink();
+ _shader = nullptr;
+ _preIntegratedGF = nullptr;
}
void ScreenSpaceReflectionsPass::Render(RenderContext& renderContext, GPUTextureView* reflectionsRT, GPUTextureView* lightBuffer)
diff --git a/Source/Engine/Renderer/ShadowsPass.cpp b/Source/Engine/Renderer/ShadowsPass.cpp
index 11812a45c..4c3260045 100644
--- a/Source/Engine/Renderer/ShadowsPass.cpp
+++ b/Source/Engine/Renderer/ShadowsPass.cpp
@@ -193,11 +193,12 @@ void ShadowsPass::Dispose()
// Base
RendererPass::Dispose();
+ // Cleanup
_psShadowDir.Delete();
_psShadowPoint.Delete();
_psShadowSpot.Delete();
- _shader.Unlink();
- _sphereModel.Unlink();
+ _shader = nullptr;
+ _sphereModel = nullptr;
SAFE_DELETE_GPU_RESOURCE(_shadowMapCSM);
SAFE_DELETE_GPU_RESOURCE(_shadowMapCube);
}
diff --git a/Source/Engine/Renderer/Utils/BitonicSort.cpp b/Source/Engine/Renderer/Utils/BitonicSort.cpp
index 5dc4fffee..89313a95d 100644
--- a/Source/Engine/Renderer/Utils/BitonicSort.cpp
+++ b/Source/Engine/Renderer/Utils/BitonicSort.cpp
@@ -69,7 +69,7 @@ void BitonicSort::Dispose()
// Base
RendererPass::Dispose();
- // Delete pipeline states
+ // Cleanup
SAFE_DELETE_GPU_RESOURCE(_dispatchArgsBuffer);
_cb = nullptr;
_indirectArgsCS = nullptr;
@@ -77,9 +77,7 @@ void BitonicSort::Dispose()
_innerSortCS = nullptr;
_outerSortCS = nullptr;
_copyIndicesCS = nullptr;
-
- // Release asset
- _shader.Unlink();
+ _shader = nullptr;
}
void BitonicSort::Sort(GPUContext* context, GPUBuffer* sortingKeysBuffer, GPUBuffer* countBuffer, uint32 counterOffset, bool sortAscending, GPUBuffer* sortedIndicesBuffer)
diff --git a/Source/Engine/Renderer/Utils/MultiScaler.cpp b/Source/Engine/Renderer/Utils/MultiScaler.cpp
index c415c1900..2c6e8ba14 100644
--- a/Source/Engine/Renderer/Utils/MultiScaler.cpp
+++ b/Source/Engine/Renderer/Utils/MultiScaler.cpp
@@ -81,14 +81,12 @@ void MultiScaler::Dispose()
// Base
RendererPass::Dispose();
- // Delete pipeline states
+ // Cleanup
SAFE_DELETE_GPU_RESOURCE(_psHalfDepth);
_psBlur5.Delete();
_psBlur9.Delete();
_psBlur13.Delete();
-
- // Release asset
- _shader.Unlink();
+ _shader = nullptr;
}
void MultiScaler::Filter(const FilterMode mode, GPUContext* context, const int32 width, const int32 height, GPUTextureView* src, GPUTextureView* dst, GPUTextureView* tmp)
@@ -121,7 +119,7 @@ void MultiScaler::Filter(const FilterMode mode, GPUContext* context, const int32
ps = &_psBlur13;
break;
default:
- CRASH;
+ CRASH;
return;
}
@@ -177,7 +175,7 @@ void MultiScaler::Filter(const FilterMode mode, GPUContext* context, const int32
ps = &_psBlur13;
break;
default:
- CRASH;
+ CRASH;
return;
}
diff --git a/Source/Engine/Renderer/VolumetricFogPass.cpp b/Source/Engine/Renderer/VolumetricFogPass.cpp
index 0bf8d838e..ff8f469ae 100644
--- a/Source/Engine/Renderer/VolumetricFogPass.cpp
+++ b/Source/Engine/Renderer/VolumetricFogPass.cpp
@@ -89,26 +89,19 @@ void VolumetricFogPass::Dispose()
// Base
RendererPass::Dispose();
- // Delete pipeline states
+ // Cleanup
_psInjectLight.Delete();
-
_csInitialize = nullptr;
_csLightScattering.Clear();
_csFinalIntegration = nullptr;
-
SAFE_DELETE_GPU_RESOURCE(_vbCircleRasterize);
SAFE_DELETE_GPU_RESOURCE(_ibCircleRasterize);
-
- // Release assets
- _shader.Unlink();
+ _shader = nullptr;
}
-float ComputeZSliceFromDepth(float SceneDepth, const VolumetricFogOptions& options, int32 GridSizeZ)
+float ComputeZSliceFromDepth(float sceneDepth, const VolumetricFogOptions& options, int32 gridSizeZ)
{
- // This must match frustum voxels depth distribution
- // See ComputeNormalizedZSliceFromDepth() in VolumetricFog.shader
-
- return SceneDepth / options.Distance * GridSizeZ;
+ return sceneDepth / options.Distance * (float)gridSizeZ;
}
bool VolumetricFogPass::Init(RenderContext& renderContext, GPUContext* context, VolumetricFogOptions& options)
diff --git a/Source/Engine/ShadowsOfMordor/Builder.cpp b/Source/Engine/ShadowsOfMordor/Builder.cpp
index 715803839..b9cb57376 100644
--- a/Source/Engine/ShadowsOfMordor/Builder.cpp
+++ b/Source/Engine/ShadowsOfMordor/Builder.cpp
@@ -499,7 +499,7 @@ void ShadowsOfMordor::Builder::releaseResources()
SAFE_DELETE_GPU_RESOURCE(_psRenderCacheModel);
SAFE_DELETE_GPU_RESOURCE(_psRenderCacheTerrain);
SAFE_DELETE_GPU_RESOURCE(_psBlurCache);
- _shader.Unlink();
+ _shader = nullptr;
SAFE_DELETE_GPU_RESOURCE(_irradianceReduction);
diff --git a/Source/Engine/Terrain/TerrainChunk.cpp b/Source/Engine/Terrain/TerrainChunk.cpp
index 6cff541f3..9dab924c2 100644
--- a/Source/Engine/Terrain/TerrainChunk.cpp
+++ b/Source/Engine/Terrain/TerrainChunk.cpp
@@ -21,7 +21,7 @@ void TerrainChunk::Init(TerrainPatch* patch, uint16 x, uint16 z)
_yHeight = 1;
_heightmapUVScaleBias = Vector4(1.0f, 1.0f, _x, _z) * (1.0f / TerrainPatch::CHUNKS_COUNT_EDGE);
_perInstanceRandom = (_patch->_terrain->_id.C ^ _x ^ _z) * (1.0f / MAX_uint32);
- OverrideMaterial.Unlink();
+ OverrideMaterial = nullptr;
}
bool TerrainChunk::PrepareDraw(const RenderContext& renderContext)
diff --git a/Source/Engine/Terrain/TerrainPatch.cpp b/Source/Engine/Terrain/TerrainPatch.cpp
index 791e93c7f..61e6f456e 100644
--- a/Source/Engine/Terrain/TerrainPatch.cpp
+++ b/Source/Engine/Terrain/TerrainPatch.cpp
@@ -64,12 +64,12 @@ void TerrainPatch::Init(Terrain* terrain, int16 x, int16 z)
{
Chunks[i].Init(this, i % CHUNKS_COUNT_EDGE, i / CHUNKS_COUNT_EDGE);
}
- Heightmap.Unlink();
+ Heightmap = nullptr;
for (int32 i = 0; i < TERRAIN_MAX_SPLATMAPS_COUNT; i++)
{
- Splatmap[i].Unlink();
+ Splatmap[i] = nullptr;
}
- _heightfield.Unlink();
+ _heightfield = nullptr;
#if TERRAIN_UPDATING
_cachedHeightMap.Resize(0);
_cachedHolesMask.Resize(0);