@animech-public/playcanvas
Version:
PlayCanvas WebGL game engine
2 lines (1 loc) • 1.68 kB
JavaScript
import{FUNC_ALWAYS as t,STENCILOP_KEEP as s}from"./constants.js";import{StringIds as i}from"../../core/string-ids.js";var e;const r=new i;class _{set func(t){this._func=t,this._dirty=!0}get func(){return this._func}set ref(t){this._ref=t,this._dirty=!0}get ref(){return this._ref}set fail(t){this._fail=t,this._dirty=!0}get fail(){return this._fail}set zfail(t){this._zfail=t,this._dirty=!0}get zfail(){return this._zfail}set zpass(t){this._zpass=t,this._dirty=!0}get zpass(){return this._zpass}set readMask(t){this._readMask=t,this._dirty=!0}get readMask(){return this._readMask}set writeMask(t){this._writeMask=t,this._dirty=!0}get writeMask(){return this._writeMask}constructor(i={}){var e,r,_,a,h,f,l;this._func=void 0,this._ref=void 0,this._fail=void 0,this._zfail=void 0,this._zpass=void 0,this._readMask=void 0,this._writeMask=void 0,this._dirty=!0,this._key=void 0,this._func=null!=(e=i.func)?e:t,this._ref=null!=(r=i.ref)?r:0,this._readMask=null!=(_=i.readMask)?_:255,this._writeMask=null!=(a=i.writeMask)?a:255,this._fail=null!=(h=i.fail)?h:s,this._zfail=null!=(f=i.zfail)?f:s,this._zpass=null!=(l=i.zpass)?l:s,this._evalKey()}_evalKey(){const{_func:t,_ref:s,_fail:i,_zfail:e,_zpass:_,_readMask:a,_writeMask:h}=this,f=`${t},${s},${i},${e},${_},${a},${h}`;this._key=r.get(f),this._dirty=!1}get key(){return this._dirty&&this._evalKey(),this._key}copy(t){return this._func=t._func,this._ref=t._ref,this._readMask=t._readMask,this._writeMask=t._writeMask,this._fail=t._fail,this._zfail=t._zfail,this._zpass=t._zpass,this._dirty=t._dirty,this._key=t._key,this}clone(){return(new this.constructor).copy(this)}}e=_,_.DEFAULT=Object.freeze(new e);export{_ as StencilParameters};