gpu.js/src/index.js
Robert Plummer ed1cd94448 feat: Added features and fixes for the following issues:
...it kind of snowballed from some needs
Fixes #521 - If `tactic` is not set, check precision allowed from WebGL, and automatically change based off needs, otherwise use value from `tactic`.
Fixes #535 - Internally check if texture from argument is the same as output, if so, clone this texture, and then clean it up after the kernel runs.
Fixes #536 - Normalize all declarations to non-destructured, and then parse
Fixes #537 - Change logic
Fixes #538 - Found the GL script that would work, and reduced the methods to use it
Fixes #539 - Found a better way of testing random, and this gives me an error for 1 in 10 runs, acceptable

Some refactoring for less duplicate code and documentation
2019-11-26 10:55:28 -05:00

57 lines
1.6 KiB
JavaScript

const { GPU } = require('./gpu');
const { alias } = require('./alias');
const { utils } = require('./utils');
const { Input, input } = require('./input');
const { Texture } = require('./texture');
const { FunctionBuilder } = require('./backend/function-builder');
const { FunctionNode } = require('./backend/function-node');
const { CPUFunctionNode } = require('./backend/cpu/function-node');
const { CPUKernel } = require('./backend/cpu/kernel');
const { HeadlessGLKernel } = require('./backend/headless-gl/kernel');
const { WebGLFunctionNode } = require('./backend/web-gl/function-node');
const { WebGLKernel } = require('./backend/web-gl/kernel');
const { kernelValueMaps: webGLKernelValueMaps } = require('./backend/web-gl/kernel-value-maps');
const { WebGL2FunctionNode } = require('./backend/web-gl2/function-node');
const { WebGL2Kernel } = require('./backend/web-gl2/kernel');
const { kernelValueMaps: webGL2KernelValueMaps } = require('./backend/web-gl2/kernel-value-maps');
const { GLKernel } = require('./backend/gl/kernel');
const { Kernel } = require('./backend/kernel');
const { FunctionTracer } = require('./backend/function-tracer');
const mathRandom = require('./plugins/math-random-uniformly-distributed');
module.exports = {
alias,
CPUFunctionNode,
CPUKernel,
GPU,
FunctionBuilder,
FunctionNode,
HeadlessGLKernel,
Input,
input,
Texture,
utils,
WebGL2FunctionNode,
WebGL2Kernel,
webGL2KernelValueMaps,
WebGLFunctionNode,
WebGLKernel,
webGLKernelValueMaps,
GLKernel,
Kernel,
FunctionTracer,
plugins: {
mathRandom
}
};