WebGLShader.js 956 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /**
  2. * @author mrdoob / http://mrdoob.com/
  3. */
  4. function addLineNumbers( string ) {
  5. var lines = string.split( '\n' );
  6. for ( var i = 0; i < lines.length; i ++ ) {
  7. lines[ i ] = ( i + 1 ) + ': ' + lines[ i ];
  8. }
  9. return lines.join( '\n' );
  10. }
  11. function WebGLShader( gl, type, string ) {
  12. var shader = gl.createShader( type );
  13. gl.shaderSource( shader, string );
  14. gl.compileShader( shader );
  15. if ( gl.getShaderParameter( shader, gl.COMPILE_STATUS ) === false ) {
  16. console.error( 'THREE.WebGLShader: Shader couldn\'t compile.' );
  17. }
  18. if ( gl.getShaderInfoLog( shader ) !== '' ) {
  19. console.warn( 'THREE.WebGLShader: gl.getShaderInfoLog()', type === gl.VERTEX_SHADER ? 'vertex' : 'fragment', gl.getShaderInfoLog( shader ), addLineNumbers( string ) );
  20. }
  21. // --enable-privileged-webgl-extension
  22. // console.log( type, gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( shader ) );
  23. return shader;
  24. }
  25. export { WebGLShader };
粤ICP备19079148号