getEncodingComponents method

List<String> getEncodingComponents(
  1. String colorSpace
)

Implementation

List<String> getEncodingComponents(String colorSpace) {
  final workingPrimaries = ColorManagement.getPrimaries(ColorManagement.workingColorSpace);
  final encodingPrimaries = ColorManagement.getPrimaries(ColorSpace.fromString(colorSpace));

  String gamutMapping = '';

  if ( workingPrimaries == encodingPrimaries ) {
    gamutMapping = '';
  } else if ( workingPrimaries == P3Primaries && encodingPrimaries == Rec709Primaries ) {
    gamutMapping = 'LinearDisplayP3ToLinearSRGB';
  } else if ( workingPrimaries == Rec709Primaries && encodingPrimaries == P3Primaries ) {
    gamutMapping = 'LinearSRGBToLinearDisplayP3';
  }

  switch ( colorSpace ) {
    case LinearSRGBColorSpace:
    case LinearDisplayP3ColorSpace:
      return [ gamutMapping, 'LinearTransferOETF' ];
    case SRGBColorSpace:
    case DisplayP3ColorSpace:
      return [ gamutMapping, 'sRGBTransferOETF' ];
    default:
      console.warning( 'THREE.WebGLProgram: Unsupported color space: $colorSpace');
      return [ gamutMapping, 'LinearTransferOETF' ];
  }
}