internal static void RemoveScreenResources() { if (m_resolvedLight != null) { m_resolvedLight.Release(); m_reduce0.Release(); m_reduce1.Release(); m_uav3.Release(); m_cloudLayerFogTargetUAV.Release(); m_localLum.Release(); m_div2.Release(); m_div4.Release(); m_div8.Release(); m_div8_1.Release(); m_rgba8_linear.Release(); m_rgba8_0.Release(); m_rgba8_1.Release(); m_rgba8_2.Release(); if (m_rgba8_ms != null) { m_rgba8_ms.Release(); m_rgba8_ms = null; } m_prevLum.Release(); MyRwTextures.Destroy(ref m_shadowsHelper); MyRwTextures.Destroy(ref m_shadowsHelper1); MyRwTextures.Destroy(ref m_gbuffer1Copy); } }
internal static void RemoveScreenResources() { if (m_reduce0 != null) { m_reduce0.Release(); m_reduce1.Release(); m_uav3.Release(); HalfScreenUavHDR.Release(); QuarterScreenUavHDR.Release(); EighthScreenUavHDR.Release(); EighthScreenUavHDRHelper.Release(); m_rgba8_linear.Release(); m_rgba8_0.Release(); m_rgba8_1.Release(); m_rgba8_2.Release(); if (m_rgba8_ms != null) { m_rgba8_ms.Release(); m_rgba8_ms = null; } m_prevLum.Release(); m_transparencyAccum.Release(); m_transparencyCoverage.Release(); MyRwTextures.Destroy(ref PostProcessedShadows); MyRwTextures.Destroy(ref CascadesHelper); MyRwTextures.Destroy(ref m_gbuffer1Copy); } if (m_backbufferCopyResource != null) { m_backbufferCopyResource.Release(); m_backbufferCopyResource = null; } if (m_lastScreenDataResource != null && m_lastScreenDataResource != Backbuffer) { m_lastScreenDataResource.Release(); m_lastScreenDataResource = null; } if (m_lastDataStream != null) { m_lastDataStream.Dispose(); m_lastDataStream = null; } }
internal static void Resize(int width, int height, int samplesNum, int samplesQuality) { if (m_resolvedDepth != null) { m_resolvedDepth.Release(); m_ambientOcclusionHelper.Release(); m_ambientOcclusion.Release(); m_tileIndices.Release(); } m_resolvedDepth = new MyDepthStencil(width, height, 1, 0); m_ambientOcclusionHelper = new MyRenderTarget(width, height, Format.R8G8B8A8_UNorm, 1, 0); m_ambientOcclusion = new MyRenderTarget(width, height, Format.R8G8B8A8_UNorm, 1, 0); TilesX = (width + MyLightRendering.TILE_SIZE - 1) / MyLightRendering.TILE_SIZE; TilesY = ((height + MyLightRendering.TILE_SIZE - 1) / MyLightRendering.TILE_SIZE); TilesNum = TilesX * TilesY; m_tileIndices = new MyRWStructuredBuffer(TilesNum + TilesNum * MyRender11Constants.MAX_POINT_LIGHTS, sizeof(uint), MyRWStructuredBuffer.UAVType.Default, true, "MyScreenDependants::tileIndices"); }
private static void TakeCustomSizedScreenshot(Vector2 rescale) { var resCpy = m_resolution; m_resolution = new Vector2I(resCpy * rescale); CreateScreenResources(); m_finalImage = DrawGameScene(null); m_resetEyeAdaptation = true; var surface = new MyRenderTarget(m_finalImage.GetSize().X, m_finalImage.GetSize().Y, SharpDX.DXGI.Format.R8G8B8A8_UNorm_SRgb, 1, 0); MyCopyToRT.Run(surface, m_finalImage); MyCopyToRT.ClearAlpha(surface); SaveScreenshotFromResource(surface.m_resource); surface.Release(); m_resolution = resCpy; CreateScreenResources(); }
internal static void Resize(int width, int height, int samplesNum, int samplesQuality) { if (m_resolvedDepth != null) { m_resolvedDepth.Release(); m_ambientOcclusionHelper.Release(); m_ambientOcclusion.Release(); m_tileIndexes.Release(); } m_resolvedDepth = new MyDepthStencil(width, height, 1, 0); m_ambientOcclusionHelper = new MyRenderTarget(width, height, Format.R8G8B8A8_UNorm, 1, 0); m_ambientOcclusion = new MyRenderTarget(width, height, Format.R8G8B8A8_UNorm, 1, 0); int tilesNum = ((width + MyLightRendering.TILE_SIZE - 1) / MyLightRendering.TILE_SIZE) * ((height + MyLightRendering.TILE_SIZE - 1) / MyLightRendering.TILE_SIZE); TilesNum = tilesNum; TilesX = (width + MyLightRendering.TILE_SIZE - 1) / MyLightRendering.TILE_SIZE; m_tileIndexes = new MyRWStructuredBuffer(tilesNum + tilesNum * MyRender11Constants.MAX_POINT_LIGHTS, sizeof(uint)); }
internal static void RemoveScreenResources() { if (m_resolvedLight != null) { m_resolvedLight.Release(); m_reduce0.Release(); m_reduce1.Release(); m_uav3.Release(); m_localLum.Release(); m_div2.Release(); m_div4.Release(); m_div8.Release(); m_div8_1.Release(); m_rgba8_linear.Release(); m_rgba8_0.Release(); m_rgba8_1.Release(); m_prevLum.Release(); MyRwTextures.Destroy(ref m_shadowsHelper); MyRwTextures.Destroy(ref m_shadowsHelper1); } }
private static void TakeCustomSizedScreenshot(Vector2 rescale) { var resCpy = m_resolution; m_resolution = new Vector2I(resCpy * rescale); CreateScreenResources(); DrawGameScene(false); m_resetEyeAdaptation = true; // uav3 stores final colors var surface = new MyRenderTarget(m_finalImage.GetSize().X, m_finalImage.GetSize().Y, SharpDX.DXGI.Format.R8G8B8A8_UNorm_SRgb, 1, 0); MyCopyToRT.Run(surface, m_finalImage); MyCopyToRT.ClearAlpha(surface); SaveScreenshotFromResource(surface.m_resource); surface.Release(); m_resolution = resCpy; CreateScreenResources(); }