Class UserStencilSettings

java.lang.Object
icyllis.arc3d.engine.trash.UserStencilSettings

@Deprecated public final class UserStencilSettings extends Object
Deprecated.
Engine uses the stencil buffer to implement complex clipping inside the OpsTask class. The OpsTask makes a subset of the stencil buffer bits available for other uses by external code (user bits). Client code can modify these bits. OpsTask will ignore ref, mask, and writemask bits provided by clients that fall outside the user range.

When code outside the OpsTask class uses the stencil buffer the contract is as follows:

> Normal stencil funcs allow the client to pass / fail regardless of the reserved clip bits. > Additional functions allow a test against the clip along with a limited set of tests against the user bits. > Client can assume all user bits are zero initially. > Client must ensure that after all its passes are finished it has only written to the color buffer in the region inside the clip. Furthermore, it must zero all user bits that were modified (both inside and outside the clip).

This struct is a compile-time constant representation of user stencil settings. It describes in abstract terms how a draw will use the stencil buffer. It gets ODR-used at runtime to define a draw's stencil settings, and is later translated into concrete settings when the pipeline is finalized.

  • Field Details

    • DISABLED_STENCIL_FLAG

      public static final short DISABLED_STENCIL_FLAG
      Deprecated.
      StencilFlags
      See Also:
    • TEST_ALWAYS_PASSES_STENCIL_FLAG

      public static final short TEST_ALWAYS_PASSES_STENCIL_FLAG
      Deprecated.
      StencilFlags
      See Also:
    • NO_MODIFY_STENCIL_STENCIL_FLAG

      public static final short NO_MODIFY_STENCIL_STENCIL_FLAG
      Deprecated.
      StencilFlags
      See Also:
    • NO_WRAP_OPS_STENCIL_FLAG

      public static final short NO_WRAP_OPS_STENCIL_FLAG
      Deprecated.
      StencilFlags
      See Also:
    • SINGLE_SIDED_STENCIL_FLAG

      public static final short SINGLE_SIDED_STENCIL_FLAG
      Deprecated.
      StencilFlags
      See Also:
    • LAST_STENCIL_FLAG

      public static final short LAST_STENCIL_FLAG
      Deprecated.
      StencilFlags
      See Also:
    • ALL_STENCIL_FLAGS

      public static final short ALL_STENCIL_FLAGS
      Deprecated.
      StencilFlags
      See Also:
    • USER_STENCIL_TEST_ALWAYS_IF_IN_CLIP

      public static final short USER_STENCIL_TEST_ALWAYS_IF_IN_CLIP
      Deprecated.
      UserStencilTest
      See Also:
    • USER_STENCIL_TEST_EQUAL_IF_IN_CLIP

      public static final short USER_STENCIL_TEST_EQUAL_IF_IN_CLIP
      Deprecated.
      UserStencilTest
      See Also:
    • USER_STENCIL_TEST_LESS_IF_IN_CLIP

      public static final short USER_STENCIL_TEST_LESS_IF_IN_CLIP
      Deprecated.
      UserStencilTest
      See Also:
    • USER_STENCIL_TEST_LEQUAL_IF_IN_CLIP

      public static final short USER_STENCIL_TEST_LEQUAL_IF_IN_CLIP
      Deprecated.
      UserStencilTest
      See Also:
    • USER_STENCIL_TEST_ALWAYS

      public static final short USER_STENCIL_TEST_ALWAYS
      Deprecated.
      See Also:
    • USER_STENCIL_TEST_NEVER

      public static final short USER_STENCIL_TEST_NEVER
      Deprecated.
      See Also:
    • USER_STENCIL_TEST_GREATER

      public static final short USER_STENCIL_TEST_GREATER
      Deprecated.
      See Also:
    • USER_STENCIL_TEST_GEQUAL

      public static final short USER_STENCIL_TEST_GEQUAL
      Deprecated.
      See Also:
    • USER_STENCIL_TEST_LESS

      public static final short USER_STENCIL_TEST_LESS
      Deprecated.
      See Also:
    • USER_STENCIL_TEST_LEQUAL

      public static final short USER_STENCIL_TEST_LEQUAL
      Deprecated.
      See Also:
    • USER_STENCIL_TEST_EQUAL

      public static final short USER_STENCIL_TEST_EQUAL
      Deprecated.
      See Also:
    • USER_STENCIL_TEST_NOTEQUAL

      public static final short USER_STENCIL_TEST_NOTEQUAL
      Deprecated.
      See Also:
    • LAST_CLIPPED_STENCIL_TEST

      public static final short LAST_CLIPPED_STENCIL_TEST
      Deprecated.
      See Also:
    • USER_STENCIL_TEST_COUNT

      public static final int USER_STENCIL_TEST_COUNT
      Deprecated.
      See Also:
    • USER_STENCIL_OP_KEEP

      public static final byte USER_STENCIL_OP_KEEP
      Deprecated.
      UserStencilOp
      See Also:
    • USER_STENCIL_OP_ZERO

      public static final byte USER_STENCIL_OP_ZERO
      Deprecated.
      See Also:
    • USER_STENCIL_OP_REPLACE

      public static final byte USER_STENCIL_OP_REPLACE
      Deprecated.
      See Also:
    • USER_STENCIL_OP_INVERT

      public static final byte USER_STENCIL_OP_INVERT
      Deprecated.
      See Also:
    • USER_STENCIL_OP_INC_WRAP

      public static final byte USER_STENCIL_OP_INC_WRAP
      Deprecated.
      See Also:
    • USER_STENCIL_OP_DEC_WRAP

      public static final byte USER_STENCIL_OP_DEC_WRAP
      Deprecated.
      See Also:
    • USER_STENCIL_OP_INC_MAYBE_CLAMP

      public static final byte USER_STENCIL_OP_INC_MAYBE_CLAMP
      Deprecated.
      See Also:
    • USER_STENCIL_OP_DEC_MAYBE_CLAMP

      public static final byte USER_STENCIL_OP_DEC_MAYBE_CLAMP
      Deprecated.
      See Also:
    • USER_STENCIL_OP_ZERO_CLIP_BIT

      public static final byte USER_STENCIL_OP_ZERO_CLIP_BIT
      Deprecated.
      See Also:
    • USER_STENCIL_OP_SET_CLIP_BIT

      public static final byte USER_STENCIL_OP_SET_CLIP_BIT
      Deprecated.
      See Also:
    • USER_STENCIL_OP_INVERT_CLIP_BIT

      public static final byte USER_STENCIL_OP_INVERT_CLIP_BIT
      Deprecated.
      See Also:
    • USER_STENCIL_OP_SET_CLIP_AND_REPLACE_USER_BITS

      public static final byte USER_STENCIL_OP_SET_CLIP_AND_REPLACE_USER_BITS
      Deprecated.
      See Also:
    • USER_STENCIL_OP_ZERO_CLIP_AND_USER_BITS

      public static final byte USER_STENCIL_OP_ZERO_CLIP_AND_USER_BITS
      Deprecated.
      See Also:
    • LAST_USER_ONLY_STENCIL_OP

      public static final byte LAST_USER_ONLY_STENCIL_OP
      Deprecated.
      See Also:
    • LAST_CLIP_ONLY_STENCIL_OP

      public static final byte LAST_CLIP_ONLY_STENCIL_OP
      Deprecated.
      See Also:
    • USER_STENCIL_OP_COUNT

      public static final int USER_STENCIL_OP_COUNT
      Deprecated.
      See Also:
    • mCWFlags

      public final short mCWFlags
      Deprecated.
    • mCWFlags2

      public final short mCWFlags2
      Deprecated.
    • mCWFace

      public final StencilFaceSettings mCWFace
      Deprecated.
    • mCCWFlags

      public final short mCCWFlags
      Deprecated.
    • mCCWFlags2

      public final short mCCWFlags2
      Deprecated.
    • mCCWFace

      public final StencilFaceSettings mCCWFace
      Deprecated.
  • Constructor Details

    • UserStencilSettings

      public UserStencilSettings(short ref, short test, short testMask, byte passOp, byte failOp, short writeMask)
      Deprecated.
    • UserStencilSettings

      public UserStencilSettings(short cwRef, short ccwRef, short cwTest, short ccwTest, short cwTestMask, short ccwTestMask, byte cwPassOp, byte ccwPassOp, byte cwFailOp, byte ccwFailOp, short cwWriteMask, short ccwWriteMask)
      Deprecated.
  • Method Details

    • flags

      public short flags(boolean hasStencilClip)
      Deprecated.
    • isDisabled

      public boolean isDisabled(boolean hasStencilClip)
      Deprecated.
    • testAlwaysPasses

      public boolean testAlwaysPasses(boolean hasStencilClip)
      Deprecated.
    • isDoubleSided

      public boolean isDoubleSided(boolean hasStencilClip)
      Deprecated.
    • usesWrapOp

      public boolean usesWrapOp(boolean hasStencilClip)
      Deprecated.