VideoTexture.js 848 字节
Newer Older
M
Mr.doob 已提交
1 2 3 4
/**
 * @author mrdoob / http://mrdoob.com/
 */

B
bentok 已提交
5
import { Texture } from './Texture.js';
M
Mr.doob 已提交
6

M
Mr.doob 已提交
7
function VideoTexture( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {
M
Mr.doob 已提交
8

R
Rich Harris 已提交
9
	Texture.call( this, video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );
M
Mr.doob 已提交
10 11

	this.generateMipmaps = false;
M
Mr.doob 已提交
12
	this.frameRate = 30;
13

M
Mugen87 已提交
14
}
M
Mr.doob 已提交
15

M
Mugen87 已提交
16
VideoTexture.prototype = Object.assign( Object.create( Texture.prototype ), {
M
Mr.doob 已提交
17

M
Mugen87 已提交
18
	constructor: VideoTexture,
M
Mugen87 已提交
19

M
Mugen87 已提交
20
	isVideoTexture: true,
M
Mr.doob 已提交
21

M
Mr.doob 已提交
22
	update: ( function () {
M
Mr.doob 已提交
23

M
Mr.doob 已提交
24
		var prevTime = Date.now();
M
Mr.doob 已提交
25

M
Mr.doob 已提交
26
		return function () {
27

M
Mr.doob 已提交
28 29 30 31
			var video = this.image;

			if ( video.readyState >= video.HAVE_CURRENT_DATA ) {

M
Mr.doob 已提交
32
				var time = Date.now();
M
Mr.doob 已提交
33

M
Mr.doob 已提交
34
				if ( time - prevTime >= ( 1000 / this.frameRate ) ) {
M
Mr.doob 已提交
35 36 37 38 39 40 41

					this.needsUpdate = true;
					prevTime = time;

				}

			}
M
Mr.doob 已提交
42

M
Mugen87 已提交
43
		}
M
Mr.doob 已提交
44

M
Mr.doob 已提交
45
	} )()
M
Mr.doob 已提交
46

M
Mugen87 已提交
47
} );
R
Rich Harris 已提交
48 49


50
export { VideoTexture };