Skip to content

Instantly share code, notes, and snippets.

@mendes5
Last active April 14, 2017 15:15
Show Gist options
  • Select an option

  • Save mendes5/de0a98dd82cb8d8720a6f7ee603e8636 to your computer and use it in GitHub Desktop.

Select an option

Save mendes5/de0a98dd82cb8d8720a6f7ee603e8636 to your computer and use it in GitHub Desktop.
Retrieve all uniforms, attributes and its types from an shader string and returns it in a javascript object
const getShaderData = (str) => {
let shaderData = { uniform: {}, attribute: {} }
str.match(/attribute.*;|uniform.*;/g).map(item => {
let [type1, type2, name] = item.split(' ')
name = name.slice(0,name.length-1)
shaderData[type1][name] = {}
shaderData[type1][name].location = name
shaderData[type1][name].type = type2
})
shaderData.isFragmentShader = /gl_FragColor/.test(str)
shaderData.isVertexShader = /gl_Position/.test(str)
return shaderData
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment