Add parseUniforms and parseAttributes for WebGL shaders

This commit is contained in:
Christoph Diehl 2018-02-20 03:06:17 +01:00
parent f0befe57fc
commit 15c9503e40
No known key found for this signature in database
GPG key ID: 799CE5B68FEF404A

View file

@ -2,7 +2,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
make.webgl = {
make.webgl = {
internalFormat: {
'RGB': {format: 'RGB', type: ['UNSIGNED_BYTE', 'UNSIGNED_SHORT_5_6_5']},
'RGBA': {format: 'RGBA', type: ['UNSIGNED_BYTE', 'UNSIGNED_SHORT_4_4_4_4', 'UNSIGNED_SHORT_5_5_5_1']},
@ -55,7 +55,7 @@
return 'RENDERBUFFER'
},
textureSources: () => {
sources = [
let sources = [
'HTMLCanvasElement',
'HTMLImageElement',
'HTMLVideoElement',
@ -66,19 +66,21 @@
return random.item(sources)
},
parseUniforms: (shader) => {
let names = [], result = shader.match(/uniform .* (\w+)(?=;)/gm)
let names = []
let result = shader.match(/uniform .* (\w+)(?=;)/gm)
if (result) {
result.forEach(function (v) {
names.push(v.split(" ").pop())
names.push(v.split(' ').pop())
})
}
return names
},
parseAttributes: (shader) => {
let names = [], result = shader.match(/attribute .* (\w+)(?=;)/gm)
let names = []
let result = shader.match(/attribute .* (\w+)(?=;)/gm)
if (result) {
result.forEach(function (v) {
names.push(v.split(" ").pop())
names.push(v.split(' ').pop())
})
}
return names