Example #1
0
        //readonly ShaderDebugMode debug1;

        public BackgroundRenderTechnique()
        {
            var d = new CombinedShadersLoader(new ManifestResourceLoader(typeof(BackgroundRenderTechnique <>)));

            pass = new D3DShaderTechniquePass(d.Load(path, "BG_"));

            vertexShader      = new DisposableSetter <VertexShader>(disposer);
            pixelShader       = new DisposableSetter <PixelShader>(disposer);
            depthStencilState = new DisposableSetter <DepthStencilState>(disposer);

            rasterizerStateDescription = new RasterizerStateDescription2()
            {
                CullMode             = CullMode.None,
                FillMode             = FillMode.Solid,
                IsMultisampleEnabled = false,

                IsFrontCounterClockwise  = false,
                IsScissorEnabled         = false,
                IsAntialiasedLineEnabled = false,
                DepthBias            = 0,
                DepthBiasClamp       = .0f,
                SlopeScaledDepthBias = .0f
            };

            //debug1 = new ShaderDebugMode(new System.IO.DirectoryInfo(@"D:\Storage_D\trash\archive\shaders\"), pass);
            //debug1.Activate();
        }
Example #2
0
        public StensilTest_TriangleColoredVertexRenderTechnique()
        {
            layconst = new VertexLayoutConstructor(Vertex.Size)
                       .AddPositionElementAsVector3()
                       .AddNormalElementAsVector3();

            var d = new CombinedShadersLoader(new ManifestResourceLoader(typeof(TriangleColoredVertexRenderTechnique <>)));

            pass            = new D3DShaderTechniquePass(d.Load(path, "CV_"));
            flatShadingPass = new D3DShaderTechniquePass(d.Load(gs_flat_shading, "FCV_"));
            wireframePass   = new D3DShaderTechniquePass(d.Load(wireframe, "WCV_"));

            //debug1 = new ShaderDebugMode(new DirectoryInfo(@"D:\Storage_D\trash\archive\shaders\"), pass);
            //debug1.Activate();
            //debug2 = new ShaderDebugMode(new DirectoryInfo(@"D:\Storage_D\trash\archive\shaders\"), flatShadingPass);
            //debug2.Activate();

            depthStencilStateDesc = D3DDepthStencilDefinition.DepthEnabled;
            blendStateDesc        = D3DBlendStateDescriptions.BlendStateEnabled;
            // blendStateDesc.AlphaToCoverageEnable = true;

            vertexShader  = new DisposableSetter <VertexShader>(disposer);
            pixelShader   = new DisposableSetter <PixelShader>(disposer);
            flatShadingGS = new DisposableSetter <GeometryShader>(disposer);
            inputLayout   = new DisposableSetter <InputLayout>(disposer);

            wireframePS = new DisposableSetter <PixelShader>(disposer);
            wireframeGS = new DisposableSetter <GeometryShader>(disposer);
        }
        public SpherePointRenderTechnique()
        {
            layconst = new VertexLayoutConstructor(Vertex.Size)
                       .AddPositionElementAsVector4()
                       .AddColorElementAsVector4();
            var d = new CombinedShadersLoader(new ManifestResourceLoader(typeof(SpherePointRenderTechnique <>)));

            pass = new D3DShaderTechniquePass(d.Load(path, "SpP_"));

            vertexShader      = new DisposableSetter <VertexShader>(disposer);
            pixelShader       = new DisposableSetter <PixelShader>(disposer);
            geometryShader    = new DisposableSetter <GeometryShader>(disposer);
            depthStencilState = new DisposableSetter <DepthStencilState>(disposer);
            inputLayout       = new DisposableSetter <InputLayout>(disposer);

            rasterizerStateDescription = new RasterizerStateDescription2()
            {
                CullMode             = CullMode.None,
                FillMode             = FillMode.Solid,
                IsMultisampleEnabled = false,

                IsFrontCounterClockwise  = false,
                IsScissorEnabled         = false,
                IsAntialiasedLineEnabled = false,
                DepthBias            = 0,
                DepthBiasClamp       = .0f,
                SlopeScaledDepthBias = .0f
            };
        }
Example #4
0
        public D3DAnimRenderComponent()
        {
            disposer      = new DisposeWatcher();
            vertexBuffers = new EnumerableDisposableSetter <List <Buffer> >(disposer);
            indexBuffers  = new EnumerableDisposableSetter <List <Buffer> >(disposer);
            TextureViews  = new EnumerableDisposableSetter <List <ShaderResourceView> >(disposer);

            PerObjectBuffer      = new DisposableSetter <Buffer>(disposer);
            PerMaterialBuffer    = new DisposableSetter <Buffer>(disposer);
            PerArmatureBuffer    = new DisposableSetter <Buffer>(disposer);
            SamplerState         = new DisposableSetter <SamplerState>(disposer);
            DepthStencilState    = new DisposableSetter <DepthStencilState>();
            TransformWorldBuffer = new DisposableSetter <Buffer>();

            RasterizerState = new D3DRasterizerState(new RasterizerStateDescription()
            {
                FillMode = FillMode.Solid,
                CullMode = CullMode.Back,
            });

            VertexShader      = new DisposableSetter <VertexShader>(disposer);
            PixelShader       = new DisposableSetter <PixelShader>(disposer);
            Layout            = new DisposableSetter <InputLayout>();
            PrimitiveTopology = SharpDX.Direct3D.PrimitiveTopology.TriangleList;
            BlendingState     = new DisposableSetter <BlendState>();

            CanRender  = true;
            IsModified = true;
        }
Example #5
0
 public D3DTerrainRenderComponent()
 {
     VertexBuffers    = new EnumerableDisposableSetter <SharpDX.Direct3D11.Buffer[]>(disposer);
     IndexBuffers     = new EnumerableDisposableSetter <SharpDX.Direct3D11.Buffer[]>(disposer);
     SampleState      = new DisposableSetter <SamplerState>(disposer);
     TextureResources = new EnumerableDisposableSetter <ShaderResourceView[]>(disposer);
 }
Example #6
0
        public OneFrameFlatWhiteRenderTechnique()
        {
            var d = new CombinedShadersLoader(new ManifestResourceLoader(typeof(OneFrameFlatWhiteRenderTechnique <>)));

            pass = new D3DShaderTechniquePass(d.Load(path, "BW_"));

            layconst = new VertexLayoutConstructor(Vertex.Size)
                       .AddPositionElementAsVector3();

            vertexShader = new DisposableSetter <VertexShader>(disposer);
            pixelShader  = new DisposableSetter <PixelShader>(disposer);
            inputLayout  = new DisposableSetter <InputLayout>(disposer);

            rasterizerStateDescription = new RasterizerStateDescription2()
            {
                CullMode             = CullMode.Front,
                FillMode             = FillMode.Solid,
                IsMultisampleEnabled = false,

                IsFrontCounterClockwise  = false,
                IsScissorEnabled         = false,
                IsAntialiasedLineEnabled = false,
                DepthBias            = 0,
                DepthBiasClamp       = .0f,
                SlopeScaledDepthBias = .0f
            };
        }
        public LineVertexRenderTechnique()
        {
            layconst = new VertexLayoutConstructor(Vertex.Size)
                       .AddPositionElementAsVector4()
                       .AddColorElementAsVector4();

            var d = new CombinedShadersLoader(new ManifestResourceLoader(typeof(LineVertexRenderTechnique <>)));

            pass = new D3DShaderTechniquePass(d.Load(path, "L_"));

            vertexShader = new DisposableSetter <VertexShader>(disposer);
            pixelShader  = new DisposableSetter <PixelShader>(disposer);
            inputLayout  = new DisposableSetter <InputLayout>(disposer);
        }
Example #8
0
 public D3DRenderComponent()
 {
     CanRender            = true;
     IsModified           = true;
     disposer             = new DisposeObserver();
     TransformWorldBuffer = new DisposableSetter <SharpDX.Direct3D11.Buffer>(disposer);
     VertexBuffer         = new DisposableSetter <SharpDX.Direct3D11.Buffer>(disposer);
     IndexBuffer          = new DisposableSetter <SharpDX.Direct3D11.Buffer>(disposer);
     DepthStencilState    = new DisposableSetter <DepthStencilState>(disposer);
     BlendingState        = new DisposableSetter <BlendState>(disposer);
     MaterialBuffer       = new DisposableSetter <SharpDX.Direct3D11.Buffer>(disposer);
     SampleState          = new DisposableSetter <SamplerState>(disposer);
     TextureResources     = new EnumerableDisposableSetter <ShaderResourceView[]>(disposer);
 }
Example #9
0
 public D3DRenderComponent()
 {
     CanRender            = true;
     IsModified           = true;
     disposer             = new DisposeWatcher();
     TransformWorldBuffer = new DisposableSetter <SharpDX.Direct3D11.Buffer>(disposer);
     VertexBuffer         = new DisposableSetter <SharpDX.Direct3D11.Buffer>(disposer);
     IndexBuffer          = new DisposableSetter <SharpDX.Direct3D11.Buffer>(disposer);
     DepthStencilState    = new DisposableSetter <DepthStencilState>(disposer);
     BlendingState        = new DisposableSetter <BlendState>(disposer);
     Layout         = new DisposableSetter <InputLayout>(disposer);
     VertexShader   = new DisposableSetter <VertexShader>(disposer);
     PixelShader    = new DisposableSetter <PixelShader>(disposer);
     GeometryShader = new DisposableSetter <GeometryShader>(disposer);
 }
Example #10
0
        protected void DefaultUpdateInputOutput(GraphicsDevice graphics, D3DRenderComponent render,
                                                VertexLayoutConstructor layconst, DisposableSetter <InputLayout> inputLayout, RenderableComponent renderable)
        {
            var context = graphics.ImmediateContext;

            context.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(render.VertexBuffer.Get(),
                                                                               layconst.VertexSize, 0));
            context.InputAssembler.SetIndexBuffer(render.IndexBuffer.Get(), SharpDX.DXGI.Format.R32_UInt, 0);

            context.InputAssembler.InputLayout       = inputLayout.Get();
            context.InputAssembler.PrimitiveTopology = renderable.PrimitiveTopology;

            context.OutputMerger.SetDepthStencilState(render.DepthStencilState.Get(), 0);
            context.OutputMerger.SetBlendState(render.BlendingState.Get(),
                                               new SharpDX.Mathematics.Interop.RawColor4(0, 0, 0, 0), -1);
        }
Example #11
0
        public BillboardRenderTechnique()
        {
            layconst = new VertexLayoutConstructor(Vertex.Size)
                       .AddPositionElementAsVector4()
                       .AddColorElementAsVector3()
            ;

            var d = new CombinedShadersLoader(new ManifestResourceLoader(this.GetType()));

            VS_FS          = new D3DShaderTechniquePass(d.Load(path_VS_FS, "BILL_"));
            GS_ScreenFixed = new D3DShaderTechniquePass(d.Load(path_GS_ScreenFixed, "BILL_"));
            GS_SizeFixed   = new D3DShaderTechniquePass(d.Load(path_GS_SizeFixed, "BILL_"));

            vertexShader  = new DisposableSetter <VertexShader>(disposer);
            pixelShader   = new DisposableSetter <PixelShader>(disposer);
            gsScreenFixed = new DisposableSetter <GeometryShader>(disposer);
            inputLayout   = new DisposableSetter <InputLayout>(disposer);
            gsSizeFixed   = new DisposableSetter <GeometryShader>(disposer);
        }
Example #12
0
        //      ShaderDebugMode debug;
        public TriangleTexturedVertexRenderTechnique()
        {
            layconst = new VertexLayoutConstructor(Vertex.Size)
                       .AddPositionElementAsVector3()
                       .AddNormalElementAsVector3()
                       .AddTexCoorElementAsVector2();

            var d = new CombinedShadersLoader(new ManifestResourceLoader(typeof(TriangleTexturedVertexRenderTechnique <>)));

            pass            = new D3DShaderTechniquePass(d.Load(path, "TV_"));
            flatShadingPass = new D3DShaderTechniquePass(d.Load(gs_flat_shading, "TV_"));
            //debug = new ShaderDebugMode(new DirectoryInfo(@"D:\"), pass);
            //debug.Activate();

            depthStencilStateDesc = D3DDepthStencilDefinition.DepthEnabled;
            blendStateDesc        = D3DBlendStateDescriptions.BlendStateEnabled;

            vertexShader  = new DisposableSetter <VertexShader>(disposer);
            pixelShader   = new DisposableSetter <PixelShader>(disposer);
            inputLayout   = new DisposableSetter <InputLayout>(disposer);
            flatShadingGS = new DisposableSetter <GeometryShader>(disposer);
        }
        public OITTriangleColoredVertexRenderTechnique()
        {
            layconst = new VertexLayoutConstructor(Vertex.Size)
                       .AddPositionElementAsVector3()
                       .AddNormalElementAsVector3()
                       .AddColorElementAsVector4();

            var d = new CombinedShadersLoader(new ManifestResourceLoader(typeof(OITTriangleColoredVertexRenderTechnique <>)));

            pass      = new D3DShaderTechniquePass(d.Load(oit, "OIT_"));
            quardPass = new D3DShaderTechniquePass(d.Load(quard, "QOIT_"));

            depthStencilStateDesc = D3DDepthStencilDefinition.DepthEnabled.Description;
            blendStateDesc        = D3DBlendStateDescriptions.BlendStateEnabled;

            vertexShader = new DisposableSetter <VertexShader>(disposer);
            pixelShader  = new DisposableSetter <PixelShader>(disposer);
            inputLayout  = new DisposableSetter <InputLayout>(disposer);

            vertexShaderQuard = new DisposableSetter <VertexShader>(disposer);
            pixelShaderQuard  = new DisposableSetter <PixelShader>(disposer);

            colorTargetTex2D           = new DisposableSetter <Texture2D>(disposer);
            alphaTargetTex2D           = new DisposableSetter <Texture2D>(disposer);
            colorTargetNoMSAATexture2D = new DisposableSetter <Texture2D>(disposer);
            alphaTargetNoMSAATexture2D = new DisposableSetter <Texture2D>(disposer);

            colorTargetNoMSAA = new DisposableSetter <ShaderResourceView>(disposer);
            alphaTargetNoMSAA = new DisposableSetter <ShaderResourceView>(disposer);

            colorTargetView = new DisposableSetter <RenderTargetView>(disposer);
            alphaTargetView = new DisposableSetter <RenderTargetView>(disposer);
            quardTargetView = new DisposableSetter <RenderTargetView>(disposer);

            targetSampler = new DisposableSetter <SamplerState>(disposer);
        }
Example #14
0
 public D3DSkyPlaneRenderComponent()
 {
     SampleState      = new DisposableSetter <SamplerState>();
     TextureResources = new EnumerableDisposableSetter <ShaderResourceView[]>();
 }
Example #15
0
 public void SetPixelShader(DisposableSetter <PixelShader> shader)
 {
     ImmediateContext.PixelShader.Set(shader.Get());
     resourseHash.RegisterShader(ImmediateContext.PixelShader.GetHashCode());
 }
Example #16
0
 public void RegisterConstantBuffer(CommonShaderStage stage, int slot, DisposableSetter <SharpDX.Direct3D11.Buffer> buff)
 {
     RegisterConstantBuffer(stage, slot, buff.Get());
 }