Пример #1
0
        private bool SetShaderParameters(DeviceContext deviceContext, Matrix worldMatrix, Matrix viewMatrix,
                                         Matrix projectionMatrix, ShaderResourceView texture, Vector4 pixelColor)
        {
            try
            {
                worldMatrix.Transpose();
                viewMatrix.Transpose();
                projectionMatrix.Transpose();

                deviceContext.MapSubresource(_constantBuffer, MapMode.WriteDiscard, MapFlags.None, out DataStream mappedResource);
                ConstantBufferType matrixBuffer = new ConstantBufferType()
                {
                    world      = worldMatrix,
                    view       = viewMatrix,
                    projection = projectionMatrix
                };
                mappedResource.Write(matrixBuffer);
                deviceContext.UnmapSubresource(_constantBuffer, 0);
                int bufferSlotNuber = 0;
                deviceContext.VertexShader.SetConstantBuffer(bufferSlotNuber, _constantBuffer);

                deviceContext.PixelShader.SetShaderResources(0, texture);
                deviceContext.MapSubresource(_pixelBuffer, MapMode.WriteDiscard, MapFlags.None, out mappedResource);
                mappedResource.Write(pixelColor);
                deviceContext.UnmapSubresource(_pixelBuffer, 0);
                deviceContext.PixelShader.SetConstantBuffer(bufferSlotNuber, _pixelBuffer);
                return(true);
            }
            catch
            {
                return(false);
            }
        }
Пример #2
0
        /// <summary>
        /// Parses the specified enum name.
        /// </summary>
        /// <param name="enumName">
        /// Name of the enum.
        /// </param>
        /// <returns>
        /// A qualifier
        /// </returns>
        public static new ConstantBufferType Parse(string enumName)
        {
            if (enumName == (string)ResourceGroup.Key)
            {
                return(ResourceGroup);
            }

            return(ConstantBufferType.Parse(enumName));
        }
        /// <summary>
        /// Parses the specified enum name.
        /// </summary>
        /// <param name="enumName">
        /// Name of the enum.
        /// </param>
        /// <returns>
        /// A qualifier
        /// </returns>
        public static new SiliconStudio.Shaders.Ast.Hlsl.ConstantBufferType Parse(string enumName)
        {
            if (enumName == (string)ResourceGroup.Key)
            {
                return(ResourceGroup);
            }

            return(ConstantBufferType.Parse(enumName));
        }
Пример #4
0
        bool SetShaderParameters(DeviceContext deviceContext, Matrix world, Matrix view, Matrix projection, ShaderResourceView texture, Color4 pixelColor)
        {
            try {
                var constantBufferType = new ConstantBufferType {
                    World      = Matrix.Transpose(world),
                    View       = Matrix.Transpose(view),
                    Projection = Matrix.Transpose(projection)
                };

                deviceContext.UpdateSubresource(ref constantBufferType, constantBuffer);
                deviceContext.VertexShader.SetConstantBuffer(0, constantBuffer);
                deviceContext.PixelShader.SetShaderResource(0, texture);

                var pixelBufferType = new PixelBufferType {
                    PixelColor = pixelColor
                };

                deviceContext.UpdateSubresource(ref pixelBufferType, pixelBuffer);
                deviceContext.PixelShader.SetConstantBuffer(0, pixelBuffer);
            } catch { return(false); }
            return(true);
        }
Пример #5
0
 private static void CreateConstantBufferTypeAst(ParsingContext context, ParseTreeNode node)
 {
     node.AstNode = ConstantBufferType.Parse(node.ChildNodes[0].Token.Text);
 }
Пример #6
0
 protected virtual void CreateConstantBufferTypeAst(ParsingContext context, ParseTreeNode node)
 {
     node.AstNode = ConstantBufferType.Parse(node.ChildNodes[0].Token.Text);
 }