diff --git a/three.js b/three.js index 65692ef39..3c85f70db 160000 --- a/three.js +++ b/three.js @@ -1 +1 @@ -Subproject commit 65692ef39af4b01ff84969e6b1e410e45333b647 +Subproject commit 3c85f70db96439a29008d9f0c36aea373ec24daf diff --git a/types/three/examples/jsm/inspector/Extension.d.ts b/types/three/examples/jsm/inspector/Extension.d.ts index 6a6a383a0..6a67dd2f1 100644 --- a/types/three/examples/jsm/inspector/Extension.d.ts +++ b/types/three/examples/jsm/inspector/Extension.d.ts @@ -1,3 +1,4 @@ +import { Inspector, InspectorLayoutEvent } from "./Inspector.js"; import { Tab, TabEventMap } from "./ui/Tab.js"; export interface ExtensionEventMap extends TabEventMap {} @@ -6,4 +7,16 @@ export class Extension readonly isExtension: boolean; constructor(name: string); + + init(inspector: Inspector): void; + + serialize(): object | null; + deserialize(data: object): void; + + save(): void; + + dispose(): void; + + onOrientationChange(event?: InspectorLayoutEvent): void; + onLayoutChange(event?: InspectorLayoutEvent): void; } diff --git a/types/three/examples/jsm/inspector/Inspector.d.ts b/types/three/examples/jsm/inspector/Inspector.d.ts index b4dbda270..907dd3346 100644 --- a/types/three/examples/jsm/inspector/Inspector.d.ts +++ b/types/three/examples/jsm/inspector/Inspector.d.ts @@ -1,10 +1,18 @@ +import { ColorGrading } from "./extensions/color-grading/ColorGrading.js"; import { TSLGraphEditor } from "./extensions/tsl-graph/TSLGraphEditor.js"; import { RendererInspector, RendererInspectorEventMap } from "./RendererInspector.js"; import { ParametersGroup } from "./tabs/Parameters.js"; import { Tab } from "./ui/Tab.js"; +export interface InspectorLayoutEvent { + position: "bottom" | "right"; + isVertical: boolean; +} + export interface InspectorEventMap extends RendererInspectorEventMap { resize: {}; + orientationchange: InspectorLayoutEvent; + layoutchange: InspectorLayoutEvent; } declare class Inspector extends RendererInspector { @@ -12,6 +20,7 @@ declare class Inspector extends RendererInspector { get domElement(): HTMLDivElement; + onExtension(name: "Color Grading", callback: (extension: ColorGrading) => void): this; onExtension(name: "TSL Graph", callback: (extension: TSLGraphEditor) => void): this; hide(): void; @@ -22,6 +31,8 @@ declare class Inspector extends RendererInspector { getSize(): { width: number; height: number }; + isVertical(): boolean; + setHorizontalAlign(value: "left" | "right"): this; setVerticalAlign(value: "top" | "bottom"): this; @@ -29,7 +40,7 @@ declare class Inspector extends RendererInspector { addTab(tab: Tab): this; removeTab(tab: Tab): this; - setActiveExtension(name: "TSL Graph", value: boolean): this; + setActiveExtension(name: "Color Grading" | "TSL Graph", value: boolean): this; } export { Inspector }; diff --git a/types/three/examples/jsm/inspector/extensions/color-grading/ColorGrading.d.ts b/types/three/examples/jsm/inspector/extensions/color-grading/ColorGrading.d.ts new file mode 100644 index 000000000..706309288 --- /dev/null +++ b/types/three/examples/jsm/inspector/extensions/color-grading/ColorGrading.d.ts @@ -0,0 +1,31 @@ +import { ToneMapping } from "../../../../../src/constants.js"; +import { Data3DTexture } from "../../../../../src/textures/Data3DTexture.js"; +import { Extension } from "../../Extension.js"; + +export interface ColorGradingJSON { + version: number; + lutSize: number; + selectedToneMapping: ToneMapping; + sceneGradingEnabled: boolean; + pipelineOrder: string[]; + modules: { [id: string]: unknown }; + params: { [name: string]: unknown }; +} + +export class ColorGrading extends Extension { + constructor(); + + lutSize: number; + lutTexture: Data3DTexture | null; + sceneGradingEnabled: boolean; + selectedToneMapping: ToneMapping; + + generate3DLUTData(size?: number, buffer?: Float32Array | null): Float32Array; + + toJSON(): ColorGradingJSON; + + serialize(): ColorGradingJSON; + deserialize(data: ColorGradingJSON): void; + + load(data: ColorGradingJSON | string): void; +} diff --git a/types/three/examples/jsm/inspector/ui/Tab.d.ts b/types/three/examples/jsm/inspector/ui/Tab.d.ts index e45d2c9db..f9266198b 100644 --- a/types/three/examples/jsm/inspector/ui/Tab.d.ts +++ b/types/three/examples/jsm/inspector/ui/Tab.d.ts @@ -4,4 +4,6 @@ export interface TabEventMap {} export class Tab extends EventDispatcher { constructor(title: string); + + dispose(): void; }