記的上次看過UniRx里的源代碼,說是參考微軟的響應式編程框架,響應式編程里的一些理論不細說,只單說UniRx里的事件流里的事件壓入與執(zhí)行,與UE4的渲染線程設計有很多相同之處,如果有了解響應式編程相關源碼如UniRx,應該對UE4的渲染線程流程容易理解。
在這先說下UniRx相應事件流的處理,讓不了解的同學大致有點印象,如當前線程計劃,一般首先有個隊列,在相應事件響應后,把相應處理方法填充到隊列中,另一邊則在隊列里,根據(jù)先進先出的原則,不斷執(zhí)行隊列里的方法。說起來比較簡單,主要是這里只拿出UniRx里的一個執(zhí)行計劃的事件流來說,另外的相關響應式編程概念與本文無關,也就不提起來說。
回到正題,說了UE4渲染流程的設計與上面很多相同,如此,我們先簡單來說明下相關UE4里的類,與上面說的來對應。
FBaseGraphTask: 上面說到事件流,那么這個類在這,就是事件流里的每個事件。
TGraphTask: FBaseGraphTask的一個子類模版類,模版類要求有方法DoTask.(注意這里,后面要說。相應在此處簡單理解成C#里的泛型約束,雖然C#直接做不到這點,可以簡接使用泛型約束加接口實現(xiàn))
FTaskThreadBase: 簡單來說,這個類里放的是事件流,以及相應處理事件流的一些方法,如
EnqueueFromThisThread: 壓入事件流中。
ProcessTasksUntilQuit: 循環(huán)執(zhí)行事件流里方法,直到有要求結束信號。
IsProcessingTasks: 是否正在執(zhí)行方法。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數(shù)據(jù)結構來看看(二) 2017-07-26