@shopware-ag/dive
Version:
Shopware Spatial Framework
95 lines (94 loc) • 2.5 kB
TypeScript
import { WebGPURenderer } from 'three/webgpu';
import { DIVEScene } from '../scene/Scene.ts';
import { DIVEPerspectiveCamera } from '../camera/PerspectiveCamera.ts';
import { DIVEEnvironment } from '../environment/Environment.ts';
export type DIVERendererSettings = {
/**
* The canvas to render to. When undefined, the canvas will be created automatically and reachable via the `diveInstance.canvas` property.
*
* @default undefined
*/
canvas: HTMLCanvasElement | undefined;
/**
* Whether to enable antialiasing
*
* @default true
*/
antialias: boolean;
/** Whether to enable alpha channel */
alpha: boolean;
/**
* Power preference for the WebGL context
*
* @default 'high-performance'
*/
powerPreference: 'high-performance' | 'low-power';
/**
* Precision of the shader
*
* @default 'highp'
*/
precision: 'highp' | 'mediump' | 'lowp';
/**
* Whether to enable stencil buffer
*
* @default false
*/
stencil: boolean;
/**
* Whether to enable depth buffer
*
* @default true
*/
depth: boolean;
/**
* Whether to use logarithmic depth buffer
*
* @default true
*/
logarithmicDepthBuffer: boolean;
/**
* Whether to enable shadows
*
* @default true
*/
shadows: boolean;
/**
* The quality of the shadows
*
* @default 'high'
*/
shadowQuality: 'high' | 'medium' | 'low';
};
export declare const DIVERendererDefaultSettings: Required<DIVERendererSettings>;
/**
* A changed version of the WebGLRenderer.
*
* Has to be started manually by calling StartRenderer().
*
* @module
*/
export declare class DIVERenderer {
private _scene;
private _camera;
readonly isDIVERenderer: true;
private _webgpurenderer;
private _environment;
private _initPromise;
private _settings;
constructor(_scene: DIVEScene, _camera: DIVEPerspectiveCamera, settings?: Partial<DIVERendererSettings>);
get webgpurenderer(): WebGPURenderer;
get environment(): DIVEEnvironment;
get canvas(): HTMLCanvasElement;
get initialized(): boolean;
initAsync(): Promise<void>;
/**
* @deprecated Use {@link DIVERenderer.tick} instead.
*/
render(): void;
tick(): void;
onResize(width: number, height: number): void;
dispose(): void;
setCanvas(canvas: HTMLCanvasElement): void;
private _createWebGPURenderer;
}