All files / engine/Source/Scene StencilConstants.js

100% Statements 3/3
100% Branches 0/0
100% Functions 1/1
100% Lines 3/3

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38                    1x             1x 1369x                                      
import StencilFunction from "./StencilFunction.js";
import StencilOperation from "./StencilOperation.js";
 
/**
 * The most significant bit is used to identify whether the pixel is 3D Tiles.
 * The next three bits store selection depth for the skip LODs optimization.
 * The last four bits are for increment/decrement shadow volume operations for classification.
 *
 * @private
 */
const StencilConstants = {
  CESIUM_3D_TILE_MASK: 0x80,
  SKIP_LOD_MASK: 0x70,
  SKIP_LOD_BIT_SHIFT: 4,
  CLASSIFICATION_MASK: 0x0f,
};
 
StencilConstants.setCesium3DTileBit = function () {
  return {
    enabled: true,
    frontFunction: StencilFunction.ALWAYS,
    frontOperation: {
      fail: StencilOperation.KEEP,
      zFail: StencilOperation.KEEP,
      zPass: StencilOperation.REPLACE,
    },
    backFunction: StencilFunction.ALWAYS,
    backOperation: {
      fail: StencilOperation.KEEP,
      zFail: StencilOperation.KEEP,
      zPass: StencilOperation.REPLACE,
    },
    reference: StencilConstants.CESIUM_3D_TILE_MASK,
    mask: StencilConstants.CESIUM_3D_TILE_MASK,
  };
};
export default Object.freeze(StencilConstants);