shadow$provide.module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$GlProgram = function(global, require, module, exports) { var createIdFromString = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$utils$createIdFromString"), getMaxFragmentPrecision = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$program$getMaxFragmentPrecision"); global = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$program$preprocessors$addProgramDefines"); module = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$program$preprocessors$ensurePrecision"); var insertVersion = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$program$preprocessors$insertVersion"), setProgramName = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$program$preprocessors$setProgramName"); require = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$program$preprocessors$stripVersion"); "use strict"; const processes = {stripVersion:require.stripVersion, ensurePrecision:module.ensurePrecision, addProgramDefines:global.addProgramDefines, setProgramName:setProgramName.setProgramName, insertVersion:insertVersion.insertVersion}, programCache = Object.create(null), node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$GlProgram$classdecl$var8 = class { constructor(options) { options = {...node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$GlProgram$classdecl$var8.defaultOptions, ...options}; const isES300 = -1 !== options.fragment.indexOf("#version 300 es"), preprocessorOptions = {stripVersion:isES300, ensurePrecision:{requestedFragmentPrecision:options.preferredFragmentPrecision, requestedVertexPrecision:options.preferredVertexPrecision, maxSupportedVertexPrecision:"highp", maxSupportedFragmentPrecision:getMaxFragmentPrecision.getMaxFragmentPrecision()}, setProgramName:{name:options.name}, addProgramDefines:isES300, insertVersion:isES300}; let fragment = options.fragment, vertex = options.vertex; Object.keys(processes).forEach(processKey => { const processOptions = preprocessorOptions[processKey]; fragment = processes[processKey](fragment, processOptions, !0); vertex = processes[processKey](vertex, processOptions, !1); }); this.fragment = fragment; this.vertex = vertex; this.transformFeedbackVaryings = options.transformFeedbackVaryings; this._key = createIdFromString.createIdFromString(`${this.vertex}:${this.fragment}`, "gl-program"); } destroy() { this.transformFeedbackVaryings = this._uniformBlockData = this._uniformData = this._attributeData = this.vertex = this.fragment = null; programCache[this._cacheKey] = null; } static from(options) { const key = `${options.vertex}:${options.fragment}`; programCache[key] || (programCache[key] = new node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$GlProgram$classdecl$var8(options), programCache[key]._cacheKey = key); return programCache[key]; } }; require = node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$GlProgram$classdecl$var8; require.defaultOptions = {preferredVertexPrecision:"highp", preferredFragmentPrecision:"mediump"}; exports.GlProgram = require; }; //# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$GlProgram.js.map