threepipe
Version:
A 3D viewer framework built on top of three.js in TypeScript with a focus on quality rendering, modularity and extensibility.
55 lines • 2.28 kB
JavaScript
export function upgradeWebGLRenderer(manager) {
if (this.userData?.__isIWebGLRenderer)
return this;
// eslint-disable-next-line @typescript-eslint/naming-convention
if (!this.userData)
this.userData = { __isIWebGLRenderer: true };
this.userData.__isIWebGLRenderer = true;
if (!this.renderWithModes)
this.renderWithModes = renderWithModes;
this.renderManager = manager;
// legacy
if (!this.baseRenderer) {
Object.defineProperty(this, 'baseRenderer', {
get: () => {
console.warn('IWebGLRenderer.baseRenderer is deprecated, use IWebGLRenderer.renderManager instead');
return this.renderManager;
},
});
}
return this;
}
function renderWithModes(ud, render) {
const rud = this.userData;
const { backgroundRender, transparentRender, shadowMapRender, mainRenderPass, opaqueRender, transmissionRender, sceneRender, screenSpaceRendering } = rud;
if (ud.backgroundRender !== undefined)
rud.backgroundRender = ud.backgroundRender;
if (ud.transparentRender !== undefined)
rud.transparentRender = ud.transparentRender;
if (ud.shadowMapRender !== undefined)
rud.shadowMapRender = ud.shadowMapRender;
if (ud.mainRenderPass !== undefined)
rud.mainRenderPass = ud.mainRenderPass;
if (ud.opaqueRender !== undefined)
rud.opaqueRender = ud.opaqueRender;
if (ud.sceneRender !== undefined)
rud.sceneRender = ud.sceneRender;
if (ud.transmissionRender !== undefined)
rud.transmissionRender = ud.transmissionRender;
if (ud.screenSpaceRendering !== undefined)
rud.screenSpaceRendering = ud.screenSpaceRendering;
render();
rud.backgroundRender = backgroundRender;
rud.transparentRender = transparentRender;
rud.shadowMapRender = shadowMapRender;
rud.mainRenderPass = mainRenderPass;
rud.opaqueRender = opaqueRender;
rud.sceneRender = sceneRender;
rud.transmissionRender = transmissionRender;
rud.screenSpaceRendering = screenSpaceRendering;
}
/**
* @deprecated renamed to {@link renderWithModes}, use {@link IWebGLRenderer.renderWithModes}
*/
export const setThreeRendererMode = renderWithModes;
//# sourceMappingURL=IRenderer.js.map