PHP 7.4.33
Preview: WebGPUTextureUtils.js Size: 1.53 KB
/var/www/uibuilder.cmshelp.dk/httpdocs/node_modules/three/examples/jsm/utils/WebGPUTextureUtils.js
import {
	QuadMesh,
	NodeMaterial,
	WebGPURenderer,
	CanvasTexture
} from 'three';
import { texture, uv } from 'three/tsl';

let _renderer;
const _quadMesh = /*@__PURE__*/ new QuadMesh();

export async function decompress( blitTexture, maxTextureSize = Infinity, renderer = null ) {

	if ( renderer === null ) {

		renderer = _renderer = new WebGPURenderer();
		await renderer.init();

	}

	const material = new NodeMaterial();

	material.fragmentNode = texture( blitTexture, uv().flipY() );

	const width = Math.min( blitTexture.image.width, maxTextureSize );
	const height = Math.min( blitTexture.image.height, maxTextureSize );

	const currentOutputColorSpace = renderer.outputColorSpace;

	renderer.setSize( width, height );
	renderer.outputColorSpace = blitTexture.colorSpace;

	_quadMesh.material = material;
	_quadMesh.render( renderer );

	renderer.outputColorSpace = currentOutputColorSpace;

	const canvas = document.createElement( 'canvas' );
	const context = canvas.getContext( '2d' );

	canvas.width = width;
	canvas.height = height;

	context.drawImage( renderer.domElement, 0, 0, width, height );

	const readableTexture = new CanvasTexture( canvas );

	readableTexture.minFilter = blitTexture.minFilter;
	readableTexture.magFilter = blitTexture.magFilter;
	readableTexture.wrapS = blitTexture.wrapS;
	readableTexture.wrapT = blitTexture.wrapT;
	readableTexture.colorSpace = blitTexture.colorSpace;
	readableTexture.name = blitTexture.name;

	if ( _renderer !== null ) {

		_renderer.dispose();
		_renderer = null;

	}

	return readableTexture;

}

Directory Contents

Dirs: 0 × Files: 15
Name Size Perms Modified Actions
31.03 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
2.83 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
12.24 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
5.37 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
5.67 KB lrw-r--r-- 2025-03-28 11:04:38
Edit Download
8.46 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
6.45 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
5.33 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
5.13 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
8.60 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
3.04 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
3.03 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
2.36 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
1.53 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
1.67 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).