playcanvas
Version:
PlayCanvas WebGL game engine
43 lines (40 loc) • 1.66 kB
JavaScript
import { shaderChunks } from './chunks/chunks.js';
/**
* @import { CameraShaderParams } from '../camera-shader-params.js'
* @import { GraphicsDevice } from '../../platform/graphics/graphics-device.js'
*/ var decodeTable = {
'linear': 'decodeLinear',
'srgb': 'decodeGamma',
'rgbm': 'decodeRGBM',
'rgbe': 'decodeRGBE',
'rgbp': 'decodeRGBP'
};
var encodeTable = {
'linear': 'encodeLinear',
'srgb': 'encodeGamma',
'rgbm': 'encodeRGBM',
'rgbe': 'encodeRGBE',
'rgbp': 'encodeRGBP'
};
class ChunkUtils {
// returns the name of the decode function for the texture encoding
static decodeFunc(encoding) {
var _decodeTable_encoding;
return (_decodeTable_encoding = decodeTable[encoding]) != null ? _decodeTable_encoding : 'decodeGamma';
}
static encodeFunc(encoding) {
var _encodeTable_encoding;
return (_encodeTable_encoding = encodeTable[encoding]) != null ? _encodeTable_encoding : 'encodeGamma';
}
/**
* Returns a screenDepth chunk configured for the given camera shader parameters.
*
* @param {GraphicsDevice} device - The graphics device.
* @param {CameraShaderParams} cameraShaderParams - The camera shader parameters.
* @returns {string} The screenDepth chunk.
* @ignore
*/ static getScreenDepthChunk(device, cameraShaderParams) {
return "\n " + (cameraShaderParams.sceneDepthMapLinear ? '#define SCENE_DEPTHMAP_LINEAR' : '') + "\n " + (device.textureFloatRenderable ? '#define SCENE_DEPTHMAP_FLOAT' : '') + "\n " + shaderChunks.screenDepthPS + "\n ";
}
}
export { ChunkUtils };