webGLShaderProcessors.ts 876 B

1234567891011121314151617181920
  1. import { Nullable } from '../../types';
  2. import { IShaderProcessor } from '../Processors/iShaderProcessor';
  3. import { ShaderProcessingContext } from '../Processors/shaderProcessingOptions';
  4. declare type ThinEngine = import("../thinEngine").ThinEngine;
  5. /** @hidden */
  6. export class WebGLShaderProcessor implements IShaderProcessor {
  7. public postProcessor(code: string, defines: string[], isFragment: boolean, processingContext: Nullable<ShaderProcessingContext>, engine: ThinEngine) {
  8. // Remove extensions
  9. if (!engine.getCaps().drawBuffersExtension) {
  10. // even if enclosed in #if/#endif, IE11 does parse the #extension declaration, so we need to remove it altogether
  11. var regex = /#extension.+GL_EXT_draw_buffers.+(enable|require)/g;
  12. code = code.replace(regex, "");
  13. }
  14. return code;
  15. }
  16. }