예제 #1
0
        public ConvertFormatShader(QuadShader quad, UploadBuffer upload)
        {
            var dev = DirectX.Device.Get();

            convert2D = new DirectX.Shader(DirectX.Shader.Type.Pixel, GetSource(ShaderBuilder.Builder2D), "ConvertFormatShader2D");
            convert3D = new DirectX.Shader(DirectX.Shader.Type.Pixel, GetSource(ShaderBuilder.Builder3D), "ConvertFormatShader3D");
            this.quad = quad;
            cbuffer   = upload;
        }
예제 #2
0
 public ConvertPolarShader(QuadShader quad)
 {
     this.quad = quad;
     toCube    = new DirectX.Shader(DirectX.Shader.Type.Pixel, GetCubeSource(), "ConvertToCube");
     toLatLong = new DirectX.Shader(DirectX.Shader.Type.Pixel, GetLatLongSource(), "CovertToLatLong");
     sampler   = new SamplerState(Device.Get().Handle, new SamplerStateDescription
     {
         AddressU          = TextureAddressMode.Wrap,
         AddressV          = TextureAddressMode.Wrap,
         AddressW          = TextureAddressMode.Wrap,
         Filter            = SharpDX.Direct3D11.Filter.Anisotropic,
         MaximumAnisotropy = 16
     });
 }
 public MitchellNetravaliScaleShader(QuadShader quad, UploadBuffer upload)
 {
     this.quad = quad;
     shader    = new DirectX.Shader(DirectX.Shader.Type.Pixel, GetSource(), "MitchellNetravaliScale");
     cbuffer   = upload;
 }
 public ConvertTo3DShader(QuadShader quad)
 {
     this.quad   = quad;
     shader3D    = new DirectX.Shader(DirectX.Shader.Type.Pixel, GetSource3D(), "ArrayTo3DShader");
     shaderLayer = new DirectX.Shader(DirectX.Shader.Type.Pixel, GetSourceLayer(), "3DToArrayShader");
 }
예제 #5
0
 public GifShader(QuadShader quad, UploadBuffer upload)
 {
     this.quad = quad;
     pixel     = new DirectX.Shader(DirectX.Shader.Type.Pixel, GetSource(), "GifPixelShader");
     cbuffer   = upload;
 }
예제 #6
0
        public void Run(ShaderResourceView left, ShaderResourceView right, ShaderResourceView overlay, RenderTargetView dst, int borderSize, int borderLocation, int width, int height, QuadShader quad, UploadBuffer cbuffer)
        {
            Debug.Assert(borderLocation >= 0);
            Debug.Assert(borderLocation < width);

            quad.Bind(false);
            var dev = Device.Get();

            dev.Pixel.Set(pixel.Pixel);

            // update buffer
            cbuffer.SetData(new BufferData
            {
                BorderLocation = borderLocation,
                BorderSize     = borderSize,
                UseOverlay     = overlay != null
            });

            // bind and draw
            dev.Pixel.SetConstantBuffer(0, cbuffer.Handle);
            dev.Pixel.SetShaderResource(0, left);
            dev.Pixel.SetShaderResource(1, right);
            dev.Pixel.SetShaderResource(2, overlay);
            dev.OutputMerger.SetRenderTargets(dst);
            dev.SetViewScissors(width, height);
            dev.DrawQuad();

            // unbind
            dev.Pixel.SetShaderResource(0, null);
            dev.Pixel.SetShaderResource(1, null);
            dev.Pixel.SetShaderResource(2, overlay);
            dev.OutputMerger.SetRenderTargets((RenderTargetView)null);
            quad.Unbind();
        }