| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | import BoundingRectangle from "../Core/BoundingRectangle.js";import destroyObject from "../Core/destroyObject.js";import FramebufferManager from "../Renderer/FramebufferManager.js";import PassState from "../Renderer/PassState.js";/** * @private */function PickDepthFramebuffer() {  this._framebuffer = new FramebufferManager({    color: false,    depthStencil: true,    supportsDepthTexture: true,  });  this._passState = undefined;}Object.defineProperties(PickDepthFramebuffer.prototype, {  framebuffer: {    get: function () {      return this._framebuffer.framebuffer;    },  },});function destroyResources(pickDepth) {  pickDepth._framebuffer.destroy();}function createResources(pickDepth, context) {  const width = context.drawingBufferWidth;  const height = context.drawingBufferHeight;  pickDepth._framebuffer.update(context, width, height);  const passState = new PassState(context);  passState.blendingEnabled = false;  passState.scissorTest = {    enabled: true,    rectangle: new BoundingRectangle(),  };  passState.viewport = new BoundingRectangle();  pickDepth._passState = passState;}PickDepthFramebuffer.prototype.update = function (  context,  drawingBufferPosition,  viewport) {  const width = viewport.width;  const height = viewport.height;  if (this._framebuffer.isDirty(width, height)) {    createResources(this, context);  }  const framebuffer = this.framebuffer;  const passState = this._passState;  passState.framebuffer = framebuffer;  passState.viewport.width = width;  passState.viewport.height = height;  passState.scissorTest.rectangle.x = drawingBufferPosition.x;  passState.scissorTest.rectangle.y = height - drawingBufferPosition.y;  passState.scissorTest.rectangle.width = 1;  passState.scissorTest.rectangle.height = 1;  return passState;};PickDepthFramebuffer.prototype.isDestroyed = function () {  return false;};PickDepthFramebuffer.prototype.destroy = function () {  destroyResources(this);  return destroyObject(this);};export default PickDepthFramebuffer;
 |