larry babby and threejs for glsl

This commit is contained in:
Sam
2024-06-24 21:24:00 +12:00
parent 87d5dc634d
commit 907ebae4c0
6474 changed files with 1279596 additions and 8 deletions

View File

@@ -0,0 +1,77 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
function _path() {
const data = _interopRequireDefault(require("path"));
_path = function () {
return data;
};
return data;
}
function _util() {
const data = require("util");
_util = function () {
return data;
};
return data;
}
function _plugin() {
const data = require("@parcel/plugin");
_plugin = function () {
return data;
};
return data;
}
function _glslifyDeps() {
const data = _interopRequireDefault(require("glslify-deps"));
_glslifyDeps = function () {
return data;
};
return data;
}
function _glslifyBundle() {
const data = _interopRequireDefault(require("glslify-bundle"));
_glslifyBundle = function () {
return data;
};
return data;
}
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _default = exports.default = new (_plugin().Transformer)({
async transform({
asset,
resolve
}) {
// Parse and collect dependencies with glslify-deps
let cwd = _path().default.dirname(asset.filePath);
let depper = (0, _glslifyDeps().default)({
cwd,
resolve: async (target, opts, next) => {
try {
let filePath = await resolve(_path().default.join(opts.basedir, 'index.glsl'), target);
next(null, filePath);
} catch (err) {
next(err);
}
}
});
let ast = await (0, _util().promisify)(depper.inline.bind(depper))(await asset.getCode(), cwd);
collectDependencies(asset, ast);
// Generate the bundled glsl file
let glsl = await (0, _glslifyBundle().default)(ast);
asset.setCode(`module.exports=${JSON.stringify(glsl)};`);
asset.type = 'js';
return [asset];
}
});
function collectDependencies(asset, ast) {
for (let dep of ast) {
if (!dep.entry) {
asset.invalidateOnFileChange(dep.file);
}
}
}