mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 15:38:09 +02:00
mesa: add accessor for effective stencil ref
Clamps the stencil reference value to the range representable in the
currently-bound draw framebuffer's stencil attachment.
V2: Add spec quote.
NOTE: This is a candidate for stable branches.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit 38f65162af)
This commit is contained in:
parent
e75c4d05fc
commit
bfb8015386
1 changed files with 14 additions and 0 deletions
|
|
@ -78,4 +78,18 @@ _mesa_update_stencil(struct gl_context *ctx);
|
|||
extern void
|
||||
_mesa_init_stencil( struct gl_context * ctx );
|
||||
|
||||
/* From the GL 4.3 spec, 17.3.5:
|
||||
* "Stencil comparison operations and queries of <ref> clamp its value
|
||||
* to the range [0, 2^s-1], where <s> is the number of bits in the
|
||||
* stencil buffer attached to the draw framebuffer."
|
||||
*/
|
||||
|
||||
static inline GLint
|
||||
_mesa_get_stencil_ref(struct gl_context const *ctx, int face)
|
||||
{
|
||||
GLint stencilMax = (1 << ctx->DrawBuffer->Visual.stencilBits) - 1;
|
||||
GLint ref = ctx->Stencil.Ref[face];
|
||||
return CLAMP(ref, 0, stencilMax);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue