|
@@ -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;
|