NiRenderListProcessor
: public NiRefObject
<NiRenderListProcessor.h>
Description
該類是一個由NiViewRenderClick用來處理NiRenderView返回的NiRenderObject數組一個渲染處理列表類。
它有兩個虛函數:
一個是在NiViewRenderClick 掉用之前執行的PreRenderProcessList;來處理幾何體組
另一個是在NiViewRenderClick 調用執行之後的PostRenderProcessList;來處理幾何體組
用PreRenderProcessList 來渲染幾何體以代替將渲染推遲到NiViewRenderClick中執行時可以的。默認的這兩個虛函數都不做什麼有用的操作,所以派生類應當重載這個兩個函數來實現有意義的處理操作。
提供的虛函數接口
virtual void PreRenderProcessList(const NiVisibleArray* pkInput, NiVisibleArray& kOutput, void* pvExtraData)
這個函數的調用先於任何幾何體被渲染。pkInput提供的幾何體數組可能是NULL。任何在這個函數裏不被渲染的幾何體都應返回在kOutput 數組裏,接下來kOutput 裏所有幾何體都將在NiViewRenderClick被渲染,額外的數據指針是在當處理器給render click賦值時由NiViewRenderClick 中定義的。派生類應該重載這個函數來處理用戶幾何體組,這個函數默認的執行是 立即渲染pkInput的幾何體組,然後將 kOutput 中的幾何體組推遲到NiViewRenderClick渲染,以避免在一個很普通的函數調用時賦值大量的潛在幾何體組。
virtual void PostRenderProcessList(NiVisibleArray& kPreviousOutput, void* pvExtraData)
這個函數是在來自PreRenderProcessList 中的kOutput 幾何體組在NiViewRenderClick中渲染後調用。kPreviousOutput 字段應該是和已渲染的kOutput幾何體組一樣。派生類應該重載這個函數,這個函數默認的是什麼操作都不做。