diff --git a/package.json b/package.json index 548a8ffb..d34581fb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gpu.js", - "version": "2.0.1", + "version": "2.0.2", "description": "GPU Accelerated JavaScript", "engines": { "node": ">=8.0.0" diff --git a/src/backend/kernel-value.js b/src/backend/kernel-value.js index 4cbcfa9f..f78a8af6 100644 --- a/src/backend/kernel-value.js +++ b/src/backend/kernel-value.js @@ -4,7 +4,7 @@ class KernelValue { /** * @param {KernelVariable} value - * @param {IKernelArgumentSettings} settings + * @param {IKernelValueSettings} settings */ constructor(value, settings) { const { @@ -62,10 +62,6 @@ class KernelValue { updateValue(value) { throw new Error(`"updateValue" not defined on ${ this.constructor.name }`); } - - getFocusString() { - throw new Error(`"getFocusString" not defined on ${ this.constructor.name }`); - } } module.exports = { diff --git a/src/index.d.ts b/src/index.d.ts index 17cfcf7e..4867da42 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -240,6 +240,7 @@ export interface IKernelValueSettings { name: string; kernel: Kernel; context: WebGLRenderingContext; + contextHandle?: number; checkContext?: boolean; onRequestContextHandle: () => number; onUpdateValueMismatch: () => void; @@ -247,6 +248,8 @@ export interface IKernelValueSettings { strictIntegers?: boolean; type: GPUVariableType; tactic: Tactic; + size: number[]; + index?: number; } export type Tactic = 'speed' | 'balanced' | 'precision'; @@ -413,9 +416,9 @@ export class FunctionBuilder { static fromKernel(kernel: Kernel, FunctionNode: FunctionNode, extraNodeOptions?: any): FunctionBuilder; constructor(settings: IFunctionBuilderSettings); addFunctionNode(functionNode: FunctionNode): void; - traceFunctionCalls(functionName: string): string[]; - getStringFromFunctionNames(functionName?: string[]): string; - getPrototypesFromFunctionNames(functionName?: string[]): string[]; + traceFunctionCalls(functionName: string, retList?: string[]): string[]; + getStringFromFunctionNames(functionName: string[]): string; + getPrototypesFromFunctionNames(functionName: string[]): string[]; getString(functionName: string): string; getPrototypeString(functionName: string): string; } @@ -454,7 +457,7 @@ export class Texture { delete(): void; } -export type TextureArrayOutput = number[] | number[][] | number[][][]; +export type TextureArrayOutput = number[] | number[][] | number[][][] | number[][][][]; export interface IPlugin { source: string; @@ -478,39 +481,21 @@ export type input = (value: number[], size: OutputDimensions) => Input; export function alias(name: string, source: KernelFunction):KernelFunction; -export class KernelArgument { - constructor(settings: IKernelArgumentSettings); - getSource(value: any): string; +export class KernelValue { + constructor(value: KernelValue, settings: IKernelValueSettings); + getSource(): string; setup(): void; - updateValue(value: any): void; + updateValue(value: KernelVariable): void; } -export interface IKernelArgumentSettings { - kernel: Kernel; - name: string; - type: GPUVariableType; - size: number[], - index: number; - context: any; - contextHandle: number; +export class WebGLKernelValue { + constructor(value: any, settings: IWebGLKernelValueSettings); } -export interface IKernelConstantSettings extends IKernelArgumentSettings { - -} - -export class WebGLKernelArgument { - constructor(value: any, settings: IWebGLKernelArgumentSettings); -} - -export interface IWebGLKernelArgumentSettings extends IKernelArgumentSettings { +export interface IWebGLKernelValueSettings extends IKernelValueSettings { texture: any; } -export interface IWebGLKenelConstantSettings extends IWebGLKernelArgumentSettings { - -} - export interface IFunctionNodeMemberExpressionDetails { xProperty: object; yProperty: object;