internal static void UpdateRenderSettings(MyRenderSettings1 settings) { Log.WriteLine("UpdateRenderSettings"); Log.IncreaseIndent(); var prevSettings = m_renderSettings; m_renderSettings = settings; LogUpdateRenderSettings(ref settings); MyRenderConstants.SwitchRenderQuality(settings.Dx9Quality); //because of lod ranges MyRenderProxy.Settings.EnableCameraInterpolation = settings.InterpolationEnabled; MyRenderProxy.Settings.EnableObjectInterpolation = settings.InterpolationEnabled; MyRenderProxy.Settings.GrassDensityFactor = settings.GrassDensityFactor; if (settings.GrassDensityFactor == 0.0f) { m_renderSettings.FoliageDetails = MyFoliageDetails.DISABLED; } MyRenderProxy.Settings.VoxelQuality = settings.VoxelQuality; // if(settings.GrassDensityFactor != prevSettings.GrassDensityFactor) // MyRenderProxy.ReloadGrass(); if (settings.ShadowQuality != prevSettings.ShadowQuality) { ResetShadows(MyRenderProxy.Settings.ShadowCascadeCount, settings.ShadowQuality.ShadowCascadeResolution()); } if (settings.AntialiasingMode != prevSettings.AntialiasingMode) { UpdateAntialiasingMode(settings.AntialiasingMode, prevSettings.AntialiasingMode); } if (settings.AnisotropicFiltering != prevSettings.AnisotropicFiltering) { SamplerStates.UpdateFiltering(); } if (settings.TextureQuality != prevSettings.TextureQuality) { //MyTextureManager.UnloadTextures(); MyVoxelMaterials1.InvalidateMaterials(); MyMeshMaterials1.InvalidateMaterials(); MyTextures.ReloadQualityDependantTextures(); //MyVoxelMaterials.ReloadTextures(); //MyMaterialProxyFactory.ReloadTextures(); } m_settingsChangedListeners(); Log.DecreaseIndent(); }
internal static void UpdateRenderSettings(MyRenderSettings1 settings) { Log.WriteLine("UpdateRenderSettings"); Log.IncreaseIndent(); var prevSettings = m_renderSettings; m_renderSettings = settings; LogUpdateRenderSettings(ref settings); MyRenderConstants.SwitchRenderQuality(settings.Dx9Quality); //because of lod ranges MyRenderProxy.Settings.EnableCameraInterpolation = settings.InterpolationEnabled; MyRenderProxy.Settings.EnableObjectInterpolation = settings.InterpolationEnabled; MyRenderProxy.Settings.GrassDensityFactor = settings.GrassDensityFactor; if (settings.GrassDensityFactor == 0.0f) { m_renderSettings.FoliageDetails = MyFoliageDetails.DISABLED; } MyRenderProxy.Settings.VoxelQuality = settings.VoxelQuality; // if(settings.GrassDensityFactor != prevSettings.GrassDensityFactor) // MyRenderProxy.ReloadGrass(); if (settings.ShadowQuality != prevSettings.ShadowQuality) { ResetShadows(MyRenderProxy.Settings.ShadowCascadeCount, settings.ShadowQuality.ShadowCascadeResolution()); } if (settings.AntialiasingMode != prevSettings.AntialiasingMode) { var defineList = new List <ShaderMacro>(); if (RenderSettings.AntialiasingMode != MyAntialiasingMode.NONE) { defineList.Add(ShaderMultisamplingDefine()); } if (DebugMode) { defineList.Add(MyShadersDefines.DebugMacro); } GlobalShaderMacro = defineList.ToArray(); MyShaders.Recompile(); MyMaterialShaders.Recompile(); MyRenderableComponent.MarkAllDirty(); if (settings.AntialiasingMode.SamplesCount() != prevSettings.AntialiasingMode.SamplesCount()) { CreateScreenResources(); } } if (settings.AnisotropicFiltering != prevSettings.AnisotropicFiltering) { SamplerStates.UpdateFiltering(); } if (settings.TextureQuality != prevSettings.TextureQuality) { //MyTextureManager.UnloadTextures(); MyVoxelMaterials1.InvalidateMaterials(); MyMeshMaterials1.InvalidateMaterials(); MyTextures.ReloadQualityDependantTextures(); //MyVoxelMaterials.ReloadTextures(); //MyMaterialProxyFactory.ReloadTextures(); } m_settingsChangedListeners(); Log.DecreaseIndent(); }