瀏覽代碼

Add priority to material extensions

master
Palash Bansal 2 年之前
父節點
當前提交
f474d55d4b
沒有連結到貢獻者的電子郵件帳戶。
共有 2 個檔案被更改,包括 6 行新增0 行删除
  1. 1
    0
      src/materials/MaterialExtender.ts
  2. 5
    0
      src/materials/MaterialExtension.ts

+ 1
- 0
src/materials/MaterialExtender.ts 查看文件

@@ -70,6 +70,7 @@ export class MaterialExtender {
}

material.materialExtensions = [...material.materialExtensions || [], ...exts]
.sort((a, b)=>(b.priority || 0) - (a.priority || 0))

if (!(material as any).__ext_beforeRenderListen) {
(material as any).__ext_beforeRenderListen = true

+ 5
- 0
src/materials/MaterialExtension.ts 查看文件

@@ -86,6 +86,11 @@ export interface MaterialExtension{
*/
getUiConfig?: (material: IMaterial, refreshUi: UiObjectConfig['uiRefresh']) => UiObjectConfig | undefined

/**
* Higher priority extensions are applied first.
*/
priority?: number // default 0

updateVersion?: number
// eslint-disable-next-line @typescript-eslint/naming-convention
__setDirty?: () => void // set by MaterialExtender, this increments updateVersion, which ends up calling needsUpdate on all the materials with this extension

Loading…
取消
儲存