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