WebGLShader.js 954 字节
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
THREE.WebGLShader = ( function () {

	var addLineNumbers = function ( string ) {

		var lines = string.split( '\n' );

		for ( var i = 0; i < lines.length; i ++ ) {

			lines[ i ] = ( i + 1 ) + ': ' + lines[ i ];

		}

		return lines.join( '\n' );

	};

	return function ( gl, type, string ) {

M
Mr.doob 已提交
19
		var shader = gl.createShader( type ); 
20 21 22 23

		gl.shaderSource( shader, string );
		gl.compileShader( shader );

24 25
		if ( gl.getShaderParameter( shader, gl.COMPILE_STATUS ) === false ) {

26
			console.error( 'THREE.WebGLShader: Shader couldn\'t compile.' );
27 28

		}
29 30 31

		if ( gl.getShaderInfoLog( shader ) !== '' ) {

32
			console.warn( 'THREE.WebGLShader: gl.getShaderInfoLog()', type === gl.VERTEX_SHADER ? 'vertex' : 'fragment', gl.getShaderInfoLog( shader ), addLineNumbers( string ) );
33 34 35

		}

36
		// --enable-privileged-webgl-extension
37
		// console.log( type, gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( shader ) );
38

39 40 41 42
		return shader;

	};

43
} )();