diff --git a/examples/js/loaders/EXRLoader.js b/examples/js/loaders/EXRLoader.js index ea73526fcf5662d2c3e1ae3eb69a8eade67fe3db..778810403ec5b1224dd0e3332ee1379288ace0b5 100644 --- a/examples/js/loaders/EXRLoader.js +++ b/examples/js/loaders/EXRLoader.js @@ -1608,6 +1608,24 @@ THREE.EXRLoader.prototype = Object.assign( Object.create( THREE.DataTextureLoade } + function parseRational( dataView, offset ) { + + var x = parseUint32( dataView, offset ); + var y = parseUint32( dataView, offset ); + + return [ x, y ]; + + } + + function parseTimecode( dataView, offset ) { + + var x = parseUint32( dataView, offset ); + var y = parseUint32( dataView, offset ); + + return [ x, y ]; + + } + function parseUint32( dataView, offset ) { var Uint32 = dataView.getUint32( offset.value, true ); @@ -1883,6 +1901,14 @@ THREE.EXRLoader.prototype = Object.assign( Object.create( THREE.DataTextureLoade return parseUint32( dataView, offset ); + } else if ( type === 'rational' ) { + + return parseRational( dataView, offset ); + + } else if ( type === 'timecode' ) { + + return parseTimecode( dataView, offset ); + } else { throw 'Cannot parse value for unsupported type: ' + type; diff --git a/examples/jsm/loaders/EXRLoader.js b/examples/jsm/loaders/EXRLoader.js index 19e881526c874598736b7ee9155ac7c830e77da5..0a35a58d22e299ffa282dabb9cfc246d026c8bae 100644 --- a/examples/jsm/loaders/EXRLoader.js +++ b/examples/jsm/loaders/EXRLoader.js @@ -1623,6 +1623,24 @@ EXRLoader.prototype = Object.assign( Object.create( DataTextureLoader.prototype } + function parseRational( dataView, offset ) { + + var x = parseUint32( dataView, offset ); + var y = parseUint32( dataView, offset ); + + return [ x, y ]; + + } + + function parseTimecode( dataView, offset ) { + + var x = parseUint32( dataView, offset ); + var y = parseUint32( dataView, offset ); + + return [ x, y ]; + + } + function parseUint32( dataView, offset ) { var Uint32 = dataView.getUint32( offset.value, true ); @@ -1898,6 +1916,14 @@ EXRLoader.prototype = Object.assign( Object.create( DataTextureLoader.prototype return parseUint32( dataView, offset ); + } else if ( type === 'rational' ) { + + return parseRational( dataView, offset ); + + } else if ( type === 'timecode' ) { + + return parseTimecode( dataView, offset ); + } else { throw 'Cannot parse value for unsupported type: ' + type;