Source: dependencies/pixi-gl-core/shader/extractUniforms.js

dependencies/pixi-gl-core/shader/extractUniforms.js

  1. var mapType = require('./mapType');
  2. var defaultValue = require('./defaultValue');
  3. /**
  4. * Extracts the uniforms
  5. * @class
  6. * @memberof PIXI.glCore.shader
  7. * @param gl {WebGLRenderingContext} The current WebGL rendering context
  8. * @param program {WebGLProgram} The shader program to get the uniforms from
  9. * @return uniforms {Object}
  10. */
  11. var extractUniforms = function(gl, program)
  12. {
  13. var uniforms = {};
  14. var totalUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);
  15. for (var i = 0; i < totalUniforms; i++)
  16. {
  17. var uniformData = gl.getActiveUniform(program, i);
  18. var name = uniformData.name.replace(/\[.*?\]/, "");
  19. var type = mapType(gl, uniformData.type );
  20. uniforms[name] = {
  21. type:type,
  22. size:uniformData.size,
  23. location:gl.getUniformLocation(program, name),
  24. value:defaultValue(type, uniformData.size)
  25. };
  26. }
  27. return uniforms;
  28. };
  29. module.exports = extractUniforms;