public void Apply(CommonShaderStage stage)
 {
     standardSamplers.Apply(stage);
     stage.SetConstantBuffer(ShaderSlots.EnvironmentParameters, constantBufferManager.Buffer);
     stage.SetShaderResource(ShaderSlots.DiffuseEnvironmentCube, diffuseEnvironmentCube);
     stage.SetShaderResource(ShaderSlots.GlossyEnvironmentCube, glossyEnvironmentCube);
 }
コード例 #2
0
        internal void SetSrv(int slot, ISrvBindable srvBind)
        {
            ShaderResourceView srv = null;

            if (srvBind != null)
            {
                srv = srvBind.Srv;
            }

            if (srv == m_srvs[slot])
            {
                return;
            }
            m_srvs[slot] = srv;
            m_shaderStage.SetShaderResource(slot, srv);
            m_statistics.SetSrvs++;
        }
コード例 #3
0
 /// <summary>
 /// Sets and gets shader resources bound to given shader stage.
 /// </summary>
 /// <param name="index"></param>
 /// <returns></returns>
 public ShaderResource this[int index] {
     set {
         resources[index] = value;
         stage.SetShaderResource(index, (value == null) ? null : value.SRV);
     }
     get {
         return(resources[index]);
     }
 }
コード例 #4
0
ファイル: RenderContext.cs プロジェクト: K0bin/DotGame
        private void SetTexture(CommonShaderStage stage, ShaderStageCache cache, int slot, ShaderResourceView view)
        {
            if (cache.Views[slot] != view)
            {
                // um Ressourcen Hazards zu vermeiden (Read und Write gleichzeitig) werden die RTs schon beim Setzen von Texturen neu gesetzt
                ApplyRenderTargets();

                stage.SetShaderResource(slot, view);
                cache.Views[slot] = view;
            }
        }