diff --git a/.gitignore b/.gitignore index 6704566..759b05e 100644 --- a/.gitignore +++ b/.gitignore @@ -102,3 +102,6 @@ dist # TernJS port file .tern-port + +# Webstorm project config folder +.idea diff --git a/examples/debug/src/App.tsx b/examples/debug/src/App.tsx index 54ccce2..ca73cb4 100644 --- a/examples/debug/src/App.tsx +++ b/examples/debug/src/App.tsx @@ -31,7 +31,7 @@ export default function App() { - + {/* */} diff --git a/examples/instances/src/App.js b/examples/instances/src/App.js index 566976b..3a918e9 100644 --- a/examples/instances/src/App.js +++ b/examples/instances/src/App.js @@ -115,7 +115,7 @@ function App() { }} > - + diff --git a/examples/points/src/App.js b/examples/points/src/App.js index dd258cf..4f9912f 100644 --- a/examples/points/src/App.js +++ b/examples/points/src/App.js @@ -95,7 +95,7 @@ function App() { }} > - + diff --git a/examples/waves/src/App.tsx b/examples/waves/src/App.tsx index b18be14..6b93d0c 100644 --- a/examples/waves/src/App.tsx +++ b/examples/waves/src/App.tsx @@ -60,7 +60,7 @@ export default function App() { {['MeshPhysicalMaterial', 'MeshStanderedMaterial'].includes(Base.name) ? ( - + ) : ( )} diff --git a/package/README.md b/package/README.md index 4b1aa43..d46bae9 100644 --- a/package/README.md +++ b/package/README.md @@ -45,6 +45,7 @@ function Box() { baseMaterial: THREE.MeshPhysicalMaterial, vertexShader: /* glsl */ ` ... `, fragmentShader: /* glsl */ ` ... `, + silent: true, // Disables the default warning if true uniforms: { uTime: { value: 0, @@ -83,6 +84,8 @@ function Cube() { baseMaterial={THREE.MeshPhysicalMaterial} vertexShader={/* glsl */ ` ... `} fragmentShader={/* glsl */ ` ... `} + {/*silent parameter to true disables the default warning if needed*/} + silent uniforms={{ uTime: { value: 0, diff --git a/package/src/keywords.ts b/package/src/keywords.ts index 5385dab..2332991 100644 --- a/package/src/keywords.ts +++ b/package/src/keywords.ts @@ -11,5 +11,5 @@ export default { metalness: 'csm_Metalness', // Metalness emissive: 'csm_Emissive', // Emissive ao: 'csm_AO', // AO - bump: 'csm_Bump' // Bump + bump: 'csm_Bump', // Bump } diff --git a/package/src/types.ts b/package/src/types.ts index 0fb98e4..15ae60b 100644 --- a/package/src/types.ts +++ b/package/src/types.ts @@ -15,6 +15,7 @@ export type iCSMParams = { fragmentShader?: string cacheKey?: () => string patchMap?: iCSMPatchMap + silent?: boolean uniforms?: { [key: string]: THREE.IUniform } } & (MaterialParams extends undefined ? {} : MaterialParams) @@ -30,6 +31,7 @@ export interface iCSMInternals { type: string isAlreadyExtended: boolean cacheHash: string + silent?: boolean } export type Uniform = { [key: string]: THREE.IUniform } diff --git a/package/src/vanilla.ts b/package/src/vanilla.ts index 9f6ac42..ff32e72 100644 --- a/package/src/vanilla.ts +++ b/package/src/vanilla.ts @@ -47,7 +47,7 @@ function isConstructor(f: T | InstanceType): f return true } -function copyObject(target: any, source: any) { +function copyObject(target: any, source: any, silent = false) { Object.assign(target, source) const proto = Object.getPrototypeOf(source) @@ -63,7 +63,7 @@ function copyObject(target: any, source: any) { .forEach((val) => { // If function exists on target, rename it with "base_" prefix if (typeof target[val[0]] === 'function') { - console.warn(`Function ${val[0]} already exists on CSM, renaming to base_${val[0]}`) + if (!silent) console.warn(`Function ${val[0]} already exists on CSM, renaming to base_${val[0]}`) const baseName = `base_${val[0]}` target[baseName] = val[1].value.bind(target) return @@ -105,6 +105,7 @@ export default class CustomShaderMaterial< uniforms, patchMap, cacheKey, + silent, ...opts }: iCSMParams) { let base: THREE.Material @@ -127,7 +128,7 @@ export default class CustomShaderMaterial< // Copy all properties from base material onto this material // Rename any functions that already exist on this material with "base_" prefix super() - copyObject(this, base) + copyObject(this, base, silent) // Set up private internals this.__csm = { @@ -140,6 +141,7 @@ export default class CustomShaderMaterial< type: base.type, isAlreadyExtended: !isFunctionEmpty(base.onBeforeCompile), cacheHash: ``, + silent: silent, } this.uniforms = { @@ -196,6 +198,7 @@ export default class CustomShaderMaterial< fragmentShader: this.__csm.fragmentShader, vertexShader: this.__csm.vertexShader, uniforms: this.uniforms, + silent: this.__csm.silent, patchMap: this.__csm.patchMap, cacheKey: this.__csm.cacheKey, }