License | BSD3 |
---|---|
Maintainer | ziocroc@gmail.com |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
Graphics.Rendering.Ombra.Stencil
Description
The stencil test lets you manipulate the stencil buffer and discard fragments on the basis of the result of the operation.
- data Mode = Mode (Side Function) (Side Operation)
- data Side a
- data Function = Function FunctionType Int Word
- data FunctionType
- = Never
- | Always
- | Less
- | LessOrEqual
- | Greater
- | GreaterOrEqual
- | Equal
- | NotEqual
- data Operation = Operation OperationType OperationType OperationType
- data OperationType
- withStencilMode :: MonadStencil m => Maybe Mode -> m a -> m a
Documentation
Stencil mode.
Function type, fragment stencil value and mask.
Constructors
Function FunctionType Int Word |
data FunctionType Source #
Operation to perform between the masked fragment stencil value and the masked destination stencil value.
Constructors
Never | Never pass. |
Always | Always pass. |
Less | < |
LessOrEqual | <= |
Greater | > |
GreaterOrEqual | >= |
Equal | == |
NotEqual | /= |
Instances
Operations to perform if the stencil test fails, if the stencil test passes but the depth test fails, and if both the stencil test and the depth test pass.
Constructors
Operation OperationType OperationType OperationType |
data OperationType Source #
Operation to perform to the stencil value in the buffer.
Constructors
Keep | Keep it unchanged. |
Invert | Invert it. |
Zero | Set it to zero. |
Replace | Replace it with the masked fragment value. |
Increment | Increment it if not maximum. |
Decrement | Decrement it if not zero. |
IncWrap | Increment it, wrapping it if it would overflow. |
DecWrap | Decrement it, wrapping it if it would underflow. |
Instances
withStencilMode :: MonadStencil m => Maybe Mode -> m a -> m a Source #