39 lines
3.4 KiB
JavaScript
39 lines
3.4 KiB
JavaScript
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
|