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"); }
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)); }