diff --git a/packages/core/src/framebuffer/FramebufferSystem.js b/packages/core/src/framebuffer/FramebufferSystem.js index d4df6fa..4eaf536 100644 --- a/packages/core/src/framebuffer/FramebufferSystem.js +++ b/packages/core/src/framebuffer/FramebufferSystem.js @@ -244,7 +244,7 @@ let count = colorTextures.length; - if (!this.drawBufferExtension) + if (!gl.drawBuffers) { count = Math.min(count, 1); } diff --git a/packages/core/src/framebuffer/FramebufferSystem.js b/packages/core/src/framebuffer/FramebufferSystem.js index d4df6fa..4eaf536 100644 --- a/packages/core/src/framebuffer/FramebufferSystem.js +++ b/packages/core/src/framebuffer/FramebufferSystem.js @@ -244,7 +244,7 @@ let count = colorTextures.length; - if (!this.drawBufferExtension) + if (!gl.drawBuffers) { count = Math.min(count, 1); } diff --git a/packages/core/src/shader/Program.js b/packages/core/src/shader/Program.js index 47ecb0a..ebb2f95 100644 --- a/packages/core/src/shader/Program.js +++ b/packages/core/src/shader/Program.js @@ -43,23 +43,29 @@ */ this.fragmentSrc = fragmentSrc || Program.defaultFragmentSrc; - name = name.replace(/\s+/g, '-'); + this.vertexSrc = this.vertexSrc.trim(); + this.fragmentSrc = this.fragmentSrc.trim(); - if (nameCache[name]) + if (this.vertexSrc.substring(0, 8) !== '#version') { - nameCache[name]++; - name += `-${nameCache[name]}`; - } - else - { - nameCache[name] = 1; - } + name = name.replace(/\s+/g, '-'); - this.vertexSrc = `#define SHADER_NAME ${name}\n${this.vertexSrc}`; - this.fragmentSrc = `#define SHADER_NAME ${name}\n${this.fragmentSrc}`; + if (nameCache[name]) + { + nameCache[name]++; + name += `-${nameCache[name]}`; + } + else + { + nameCache[name] = 1; + } - this.vertexSrc = setPrecision(this.vertexSrc, settings.PRECISION_VERTEX); - this.fragmentSrc = setPrecision(this.fragmentSrc, settings.PRECISION_FRAGMENT); + this.vertexSrc = `#define SHADER_NAME ${name}\n${this.vertexSrc}`; + this.fragmentSrc = `#define SHADER_NAME ${name}\n${this.fragmentSrc}`; + + this.vertexSrc = setPrecision(this.vertexSrc, settings.PRECISION_VERTEX); + this.fragmentSrc = setPrecision(this.fragmentSrc, settings.PRECISION_FRAGMENT); + } // currently this does not extract structs only default types this.extractData(this.vertexSrc, this.fragmentSrc); diff --git a/packages/core/src/framebuffer/FramebufferSystem.js b/packages/core/src/framebuffer/FramebufferSystem.js index d4df6fa..4eaf536 100644 --- a/packages/core/src/framebuffer/FramebufferSystem.js +++ b/packages/core/src/framebuffer/FramebufferSystem.js @@ -244,7 +244,7 @@ let count = colorTextures.length; - if (!this.drawBufferExtension) + if (!gl.drawBuffers) { count = Math.min(count, 1); } diff --git a/packages/core/src/shader/Program.js b/packages/core/src/shader/Program.js index 47ecb0a..ebb2f95 100644 --- a/packages/core/src/shader/Program.js +++ b/packages/core/src/shader/Program.js @@ -43,23 +43,29 @@ */ this.fragmentSrc = fragmentSrc || Program.defaultFragmentSrc; - name = name.replace(/\s+/g, '-'); + this.vertexSrc = this.vertexSrc.trim(); + this.fragmentSrc = this.fragmentSrc.trim(); - if (nameCache[name]) + if (this.vertexSrc.substring(0, 8) !== '#version') { - nameCache[name]++; - name += `-${nameCache[name]}`; - } - else - { - nameCache[name] = 1; - } + name = name.replace(/\s+/g, '-'); - this.vertexSrc = `#define SHADER_NAME ${name}\n${this.vertexSrc}`; - this.fragmentSrc = `#define SHADER_NAME ${name}\n${this.fragmentSrc}`; + if (nameCache[name]) + { + nameCache[name]++; + name += `-${nameCache[name]}`; + } + else + { + nameCache[name] = 1; + } - this.vertexSrc = setPrecision(this.vertexSrc, settings.PRECISION_VERTEX); - this.fragmentSrc = setPrecision(this.fragmentSrc, settings.PRECISION_FRAGMENT); + this.vertexSrc = `#define SHADER_NAME ${name}\n${this.vertexSrc}`; + this.fragmentSrc = `#define SHADER_NAME ${name}\n${this.fragmentSrc}`; + + this.vertexSrc = setPrecision(this.vertexSrc, settings.PRECISION_VERTEX); + this.fragmentSrc = setPrecision(this.fragmentSrc, settings.PRECISION_FRAGMENT); + } // currently this does not extract structs only default types this.extractData(this.vertexSrc, this.fragmentSrc); diff --git a/packages/core/src/shader/utils/setPrecision.js b/packages/core/src/shader/utils/setPrecision.js index a60ccdf..c88ede5 100644 --- a/packages/core/src/shader/utils/setPrecision.js +++ b/packages/core/src/shader/utils/setPrecision.js @@ -8,8 +8,6 @@ */ export default function setPrecision(src, precision) { - src = src.trim(); - if (src.substring(0, 9) !== 'precision')// && src.substring(0, 1) !== '#') { return `precision ${precision} float;\n${src}`;