123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- import { GPUPrimitiveTopology, GPUTextureFormat } from './constants.js';
- class WebGPUUtils {
- constructor( renderer ) {
- this.renderer = renderer;
- }
- getCurrentEncoding() {
- const renderer = this.renderer;
- const renderTarget = renderer.getRenderTarget();
- return ( renderTarget !== null ) ? renderTarget.texture.encoding : renderer.outputEncoding;
- }
- getCurrentColorFormat() {
- let format;
- const renderer = this.renderer;
- const renderTarget = renderer.getRenderTarget();
- if ( renderTarget !== null ) {
- const renderTargetProperties = renderer._properties.get( renderTarget );
- format = renderTargetProperties.colorTextureFormat;
- } else {
- format = GPUTextureFormat.BGRA8Unorm; // default context format
- }
- return format;
- }
- getCurrentDepthStencilFormat() {
- let format;
- const renderer = this.renderer;
- const renderTarget = renderer.getRenderTarget();
- if ( renderTarget !== null ) {
- const renderTargetProperties = renderer._properties.get( renderTarget );
- format = renderTargetProperties.depthTextureFormat;
- } else {
- format = GPUTextureFormat.Depth24PlusStencil8;
- }
- return format;
- }
- getPrimitiveTopology( object ) {
- if ( object.isMesh ) return GPUPrimitiveTopology.TriangleList;
- else if ( object.isPoints ) return GPUPrimitiveTopology.PointList;
- else if ( object.isLineSegments ) return GPUPrimitiveTopology.LineList;
- else if ( object.isLine ) return GPUPrimitiveTopology.LineStrip;
- }
- getSampleCount() {
- return this.renderer._parameters.sampleCount;
- }
- }
- export default WebGPUUtils;
|