mirror of
https://github.com/jiawanlong/Cesium-Examples.git
synced 2025-11-04 17:34:17 +00:00
59 lines
1.4 KiB
JavaScript
59 lines
1.4 KiB
JavaScript
import { Texture } from './Texture.js';
|
|
import { NearestFilter, UnsignedIntType, UnsignedInt248Type, DepthFormat, DepthStencilFormat } from '../constants.js';
|
|
|
|
class DepthTexture extends Texture {
|
|
|
|
constructor( width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format ) {
|
|
|
|
format = format !== undefined ? format : DepthFormat;
|
|
|
|
if ( format !== DepthFormat && format !== DepthStencilFormat ) {
|
|
|
|
throw new Error( 'DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat' );
|
|
|
|
}
|
|
|
|
if ( type === undefined && format === DepthFormat ) type = UnsignedIntType;
|
|
if ( type === undefined && format === DepthStencilFormat ) type = UnsignedInt248Type;
|
|
|
|
super( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );
|
|
|
|
this.isDepthTexture = true;
|
|
|
|
this.image = { width: width, height: height };
|
|
|
|
this.magFilter = magFilter !== undefined ? magFilter : NearestFilter;
|
|
this.minFilter = minFilter !== undefined ? minFilter : NearestFilter;
|
|
|
|
this.flipY = false;
|
|
this.generateMipmaps = false;
|
|
|
|
this.compareFunction = null;
|
|
|
|
}
|
|
|
|
|
|
copy( source ) {
|
|
|
|
super.copy( source );
|
|
|
|
this.compareFunction = source.compareFunction;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
toJSON( meta ) {
|
|
|
|
const data = super.toJSON( meta );
|
|
|
|
if ( this.compareFunction !== null ) data.compareFunction = this.compareFunction;
|
|
|
|
return data;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
export { DepthTexture };
|