示例#1
0
        /// <summary>
        ///     Gets the parameters used for Stencil testing.
        /// </summary>
        /// <returns></returns>
        public RenderBase.OStencilOperation getStencilTest()
        {
            RenderBase.OStencilOperation output = new RenderBase.OStencilOperation();

            //Test
            uint test = getParameter(PICACommand.stencilTestConfig);

            output.isTestEnabled = (test & 1) > 0;
            output.testFunction  = (RenderBase.OTestFunction)((test >> 4) & 0xf);
            output.testReference = (test >> 16) & 0xff;
            output.testMask      = (test >> 24);

            //Operation
            uint operation = getParameter(PICACommand.stencilOperationConfig);

            output.failOperation  = (RenderBase.OStencilOp)(operation & 0xf);
            output.zFailOperation = (RenderBase.OStencilOp)((operation >> 4) & 0xf);
            output.passOperation  = (RenderBase.OStencilOp)((operation >> 8) & 0xf);

            return(output);
        }
        /// <summary>
        ///     Gets the parameters used for Stencil testing.
        /// </summary>
        /// <returns></returns>
        public RenderBase.OStencilOperation getStencilTest()
        {
            RenderBase.OStencilOperation output = new RenderBase.OStencilOperation();

            //Test
            uint test = getParameter(PICACommand.stencilTestConfig);

            output.isTestEnabled = (test & 1) > 0;
            output.testFunction = (RenderBase.OTestFunction)((test >> 4) & 0xf);
            output.testReference = (test >> 16) & 0xff;
            output.testMask = (test >> 24);

            //Operation
            uint operation = getParameter(PICACommand.stencilOperationConfig);

            output.failOperation = (RenderBase.OStencilOp)(operation & 0xf);
            output.zFailOperation = (RenderBase.OStencilOp)((operation >> 4) & 0xf);
            output.passOperation = (RenderBase.OStencilOp)((operation >> 8) & 0xf);

            return output;
        }