Skip to content

Commit

Permalink
TSL: uniforms (#823)
Browse files Browse the repository at this point in the history
* TSL: uniforms

* Format
  • Loading branch information
Methuselah96 authored Feb 20, 2024
1 parent 6286154 commit 5dcee19
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 3 deletions.
1 change: 1 addition & 0 deletions types/three/examples/jsm/nodes/Nodes.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,7 @@ export {
} from "./accessors/TangentNode.js";
export { default as TextureBicubicNode, textureBicubic } from "./accessors/TextureBicubicNode.js";
export { default as TextureNode, sampler, texture } from "./accessors/TextureNode.js";
export { default as UniformsNode, uniforms } from "./accessors/UniformsNode.js";
export { default as UserDataNode, userData } from "./accessors/UserDataNode.js";
export { default as UVNode, uv } from "./accessors/UVNode.js";
export { default as VertexColorNode, vertexColor } from "./accessors/VertexColorNode.js";
Expand Down
10 changes: 7 additions & 3 deletions types/three/examples/jsm/nodes/accessors/BufferNode.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,17 @@ import { NodeTypeOption } from "../core/constants.js";
import UniformNode from "../core/UniformNode.js";
import { NodeOrType, ShaderNodeObject } from "../shadernode/ShaderNode.js";

export default class BufferNode extends UniformNode<ArrayLike<number>> {
export default class BufferNode extends UniformNode<ArrayLike<number> | null> {
isBufferNode: true;

bufferType: string;
bufferCount: number;

constructor(value: ArrayLike<number>, bufferType: NodeTypeOption, bufferCount?: number);
constructor(value: ArrayLike<number> | null, bufferType: NodeTypeOption, bufferCount?: number);
}

export const buffer: (value: ArrayLike<number>, nodeOrType: NodeOrType, count: number) => ShaderNodeObject<BufferNode>;
export const buffer: (
value: ArrayLike<number> | null,
nodeOrType: NodeOrType,
count: number,
) => ShaderNodeObject<BufferNode>;
25 changes: 25 additions & 0 deletions types/three/examples/jsm/nodes/accessors/UniformsNode.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import Node from "../core/Node.js";
import { ShaderNodeObject } from "../shadernode/ShaderNode.js";
import ArrayElementNode from "../utils/ArrayElementNode.js";
import BufferNode from "./BufferNode.js";

declare class UniformsElementNode extends ArrayElementNode {
constructor(arrayBuffer: Node, indexNode: Node);
}

export default class UniformsNode extends BufferNode {
array: unknown[];
elementType: string | null;

readonly isArrayBufferNode: true;

constructor(value: unknown[], elementType?: string | null);

getElementType(): string | null;

getElementLength(): number;

element(indexNode: number): ShaderNodeObject<UniformsElementNode>;
}

export const uniforms: (values: unknown[], nodeType?: string | null) => ShaderNodeObject<UniformsNode>;

0 comments on commit 5dcee19

Please sign in to comment.