コード例 #1
0
        private void BuildDescriptors()
        {
            var srvDesc = new ShaderResourceViewDescription
            {
                Shader4ComponentMapping = D3DUtil.DefaultShader4ComponentMapping,
                Format    = _format,
                Dimension = ShaderResourceViewDimension.Texture2D,
                Texture2D = new ShaderResourceViewDescription.Texture2DResource
                {
                    MostDetailedMip = 0,
                    MipLevels       = 1
                }
            };

            var uavDesc = new UnorderedAccessViewDescription
            {
                Format    = _format,
                Dimension = UnorderedAccessViewDimension.Texture2D,
                Texture2D = new UnorderedAccessViewDescription.Texture2DResource
                {
                    MipSlice = 0
                }
            };

            _device.CreateShaderResourceView(_blurMap0, srvDesc, _blur0CpuSrv);
            _device.CreateUnorderedAccessView(_blurMap0, null, uavDesc, _blur0CpuUav);

            _device.CreateShaderResourceView(_blurMap1, srvDesc, _blur1CpuSrv);
            _device.CreateUnorderedAccessView(_blurMap1, null, uavDesc, _blur1CpuUav);
        }
コード例 #2
0
        public void BuildDescriptors(CpuDescriptorHandle cpuDescriptor, GpuDescriptorHandle gpuDescriptor, int descriptorSize)
        {
            var srvDesc = new ShaderResourceViewDescription
            {
                Shader4ComponentMapping = D3DUtil.DefaultShader4ComponentMapping,
                Format    = Format.R32_Float,
                Dimension = ShaderResourceViewDimension.Texture2D,
                Texture2D = new ShaderResourceViewDescription.Texture2DResource
                {
                    MostDetailedMip = 0,
                    MipLevels       = 1
                }
            };

            var uavDesc = new UnorderedAccessViewDescription
            {
                Format    = Format.R32_Float,
                Dimension = UnorderedAccessViewDimension.Texture2D,
                Texture2D = new UnorderedAccessViewDescription.Texture2DResource
                {
                    MipSlice = 0
                }
            };

            _device.CreateShaderResourceView(_prevSol, srvDesc, cpuDescriptor);
            _device.CreateShaderResourceView(_currSol, srvDesc, cpuDescriptor + descriptorSize);
            _device.CreateShaderResourceView(_nextSol, srvDesc, cpuDescriptor + descriptorSize * 2);

            _device.CreateUnorderedAccessView(_prevSol, null, uavDesc, cpuDescriptor + descriptorSize * 3);
            _device.CreateUnorderedAccessView(_currSol, null, uavDesc, cpuDescriptor + descriptorSize * 4);
            _device.CreateUnorderedAccessView(_nextSol, null, uavDesc, cpuDescriptor + descriptorSize * 5);

            // Save references to the GPU descriptors.
            _prevSolSrv = gpuDescriptor;
            _currSolSrv = gpuDescriptor + descriptorSize;
            _nextSolSrv = gpuDescriptor + descriptorSize * 2;
            _prevSolUav = gpuDescriptor + descriptorSize * 3;
            _currSolUav = gpuDescriptor + descriptorSize * 4;
            _nextSolUav = gpuDescriptor + descriptorSize * 5;
        }