UGUI原始碼解析 9 MaskGraphic

2021-10-19 05:09:06 字數 1294 閱讀 1458

一、簡介

maskablegraphic是乙個抽象類,繼承了graphic, iclippable, imaskable, imaterialmodifier介面,派生了rawimage,image和text

二、功能

1、 onenable()

protected override void onenable()

}

設定重新計算模板m_shouldrecalculatestencil為true,更新裁剪的父物件updateclipparent,設定material為dirty,setmaterialdirty。如果mesh元件不為空,呼叫maskutilities.notifystencilstatechanged重新計算mask。

2、ondisable()

protected override void ondisable()

}

設定重新計算模板m_shouldrecalculatestencil為true,更新裁剪的父物件updateclipparent,設定material為dirty,setmaterialdirty,stencilmaterial移除了m_maskmaterial,並設定m_maskmaterial為空。如果mesh元件不為空,呼叫maskutilities.notifystencilstatechanged重新計算mask。

3、updateclipparent()

private void updateclipparent()

// don't re-add it if the newparent is inactive

if (newparent != null && newparent.isactive())

newparent.addclippable(this);

m_parentmask = newparent;

}

4、stencilmaterial

1、是乙個靜態類,負責管理模板材質。它維護了乙個型別為matentry的list,外部可以呼叫add、remove和clearall方法來對這個list進行操作。

2、add方法,會建立乙個matentry,並將輸入的basemat以及其他引數賦值給matentry的變數,並建立乙個賦值basemat新的材質custommat。並將stencilid、operation等引數設定給custommat(實際上是shader的引數)。

UGUI原始碼解析 12 RawImage

一 簡介 如果你沒有或不想建立乙個圖集,你可以簡單地使用rawimage來繪製乙個紋理。請記住,每個rawimage都會建立乙個drawcall,因此最好只用於背景或臨時可見圖形。指令碼注釋 繼承maskablegraphic,是未經處理的。二 功能說明 1 setnativesize 重寫mask...

LK原始碼解析 9 總結

form little kernel做為android系統的bootloader,最早用google工程師實現,其後由高通,mtk等晶元廠商做了各自平台的適配。lk的主要功能 初始化硬體模組,如時鐘,中斷,uart,usb,lcd,pmic,emmc ufs等。更新cmdline。其中重要的是區分啟...

UGUI 原始碼之 IndexedSet

list 和 dictionary,是最常用的資料結構之二。先來看看list 和 dictionary的優缺點 1.遍歷,list可以 for 可以 foreach 還可以.foreach 而 dictionary只能foreach unity某些版本使用foreach會由於拆裝箱產生gc list...