private void ApplyRenderProxyStagingArea()
{
// Apply stage to current process
Dictionary<IMaterial, RenderPass> renderPassDict = new Dictionary<IMaterial, RenderPass>();
for (int p = 0; p < renderProxyStagingArea.Count; p++)
{
BaseRenderProxy proxy = renderProxyStagingArea[p];
IMaterial materialToUse = proxy.Material;
if (proxy.Material == null)
{
materialToUse = AlkaronCoreGame.Core.AssetManager.Load<Material>(
"EngineMaterials.BasicEffect.material");
}
RenderPass passToUse = null;
if (renderPassDict.ContainsKey(materialToUse) == false)
{
passToUse = CreateAndAddRenderPassForMaterial(materialToUse);
renderPassDict.Add(materialToUse, passToUse);
}
else
{
passToUse = renderPassDict[materialToUse];
}
passToUse.WorldOriginForDepthSorting = ViewTarget?.CameraLocation ?? Vector3.Zero;
passToUse.AddProxy(proxy);
}
renderProxyStagingArea.Clear();
}