public void SetResourceUsage(GpuResourceUsage resourceUsage, int register, GpuShaderType target = GpuShaderType.All) { //set resource Direct3D instance to pipeline's shader //we use target shader to flag which shader the resource will set to //we can use "&" to make sure if we need set buffer to vertex shader if ((target & GpuShaderType.VertexShader) != GpuShaderType.None) { ImmediateContext.VertexShader.SetShaderResource(register, resourceUsage.ShaderResource); } //we can use "&" to make sure if we need set buffer to pixel shader if ((target & GpuShaderType.PixelShader) != GpuShaderType.None) { ImmediateContext.PixelShader.SetShaderResource(register, resourceUsage.ShaderResource); } }