最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Blender源碼結(jié)構(gòu)層級(jí)記錄

2023-07-26 11:06 作者:抓住小豬  | 我要投稿

首先一上來(lái)當(dāng)然是官方的源碼結(jié)構(gòu)說(shuō)明:https://wiki.blender.org/wiki/Source/File_Structure

我之前看的時(shí)候還是2.83版本,以下以2.83為例。

源碼層級(jí)結(jié)構(gòu)


在整個(gè)源碼的結(jié)構(gòu)中,我們最關(guān)心的,只有三個(gè)文件夾。分別是?extern、intern、source。其他其實(shí)不用關(guān)心。

首先先介紹我們不怎么關(guān)心的幾個(gè)文件夾里面主要的內(nèi)容。

暫時(shí)不關(guān)心的源碼目錄

build_files

是為了編譯而準(zhǔn)備的一些腳本命令,包括項(xiàng)目是否最新、編譯配置等,暫時(shí)不關(guān)心。

doc

用于生成當(dāng)前版本blender文檔相關(guān)的工具(包括c++文檔、python?API文檔),以及一些blender內(nèi)數(shù)據(jù)結(jié)構(gòu)的說(shuō)明。blender使用doxygen生成c++文檔,使用sphinx生成python文檔。

release

預(yù)先準(zhǔn)備的資源,比如內(nèi)置的插件、主題等,在編完之后其中的部分資源直接拷貝到編譯完的項(xiàng)目中。

tests

顧名思義,blender的所有單元測(cè)試都在這個(gè)目錄下。


著重關(guān)心的源碼

上面這一些項(xiàng)目可以先不關(guān)心,它們對(duì)我們理解、分析blender源碼沒(méi)有什么影響。

下面看blender源碼中最重要的三個(gè)部分:?extern、intern、source?。

在這三個(gè)部分中,簡(jiǎn)單介紹一下分別是干嘛的。

extern

blender依賴的第三方庫(kù)的官方版本,blender只使用,不維護(hù)。其中目前涉及到24個(gè)外部項(xiàng)目,主要是一些音頻庫(kù)、圖形算法庫(kù)、圖形渲染庫(kù)、常用數(shù)據(jù)結(jié)構(gòu)庫(kù)、單元測(cè)試庫(kù)以及其他一些必要的庫(kù)。

intern

blender使用的一些內(nèi)部的庫(kù)(一部分是對(duì)第三方庫(kù)的魔改版本),由blender自己維護(hù)代碼;目測(cè)這個(gè)部分的代碼,是第二重要的代碼;

source

blender自己的核心代碼,雖然intern也是核心代碼,但是intern內(nèi)的代碼大部分還是外部的開(kāi)源庫(kù)的。而這部分代碼是完全的blender自己搭建,平地起高樓,目測(cè)是最重要的代碼。而在其中,還分成三個(gè)部分:?blender、creator、tools?

source\blender

blender特有的一些代碼,其中包含了非常多的、最核心的blender實(shí)現(xiàn),也是理解源碼最重要的部分;關(guān)于這個(gè)部分的介紹,下面一個(gè)章節(jié)會(huì)詳細(xì)介紹。


source\creator

作者說(shuō)之后會(huì)移動(dòng)到?blender\source\blender?中,這部分代碼實(shí)際是blender的主入口代碼,在這個(gè)模塊中,通過(guò)對(duì)blender\source\blender?中基礎(chǔ)接口的調(diào)用,做了子模塊的配置、入?yún)⒔馕鲆约案鞣N事件循環(huán)的調(diào)用。


source\tools

tools?下面是一個(gè)獨(dú)立的git倉(cāng)庫(kù)(https://wiki.blender.org/wiki/Tools/Blender_Tools_Repo)

如果要理解整個(gè)結(jié)構(gòu),這部分代碼其實(shí)也不用太關(guān)心。包含內(nèi)容為構(gòu)建?Blender?不需要但開(kāi)發(fā)人員可能會(huì)發(fā)現(xiàn)有用的工具,包括:

1.? 用于對(duì)代碼進(jìn)行樣式、拼寫檢查的實(shí)用腳本。

2.? 用于代碼庫(kù)分析的實(shí)用腳本,例如創(chuàng)建信用。

3.? 第三方應(yīng)用程序、IDE?的配置。

4.? 比如對(duì)于刪除代碼中的一些尾隨空格以及BOM,使用python3?source/tools/utils_maintenance/trailing_space_clean.py?

比如對(duì)于要檢查一個(gè)blend文件中的DNA結(jié)構(gòu),使用

source/tools/utils/blend2json.py

具體的使用方式就不記錄了,有需要使用工具了去找一圈就行。下面粗略記錄工作的類型,個(gè)人覺(jué)得最主要的只有代碼規(guī)范和源碼檢查類。


代碼規(guī)范與其他類

主要在?source/tools/utils/??以及?source/tools/utils_maintenance/??中,涉及到包括代碼整理、代碼規(guī)范等等python腳本

源碼檢查類

主要位于source/tools/check_source/

用于檢查代碼拼寫,是否有沒(méi)有使用的定義,頭文件重復(fù)等等

可執(zhí)行項(xiàng)目檢查類

主要位于source/tools/check_blender_release/

檢查版本,查看模塊等

編譯配置類

主要位于source/tools/utils_ide/?和?source/tools/utils_build/?

其中提供了QtCreator的項(xiàng)目配置,以及cmake編譯選項(xiàng);

文檔類

主要位于source/tools/utils_doc/


所以到這邊為止,對(duì)blender源碼的結(jié)構(gòu)至少有一個(gè)大概的感覺(jué)了。

blender自己的核心實(shí)現(xiàn)在?source/blender?中。




Blender源碼結(jié)構(gòu)層級(jí)記錄的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
沈丘县| 蒙山县| 若羌县| 尖扎县| 温州市| 赣州市| 东方市| 大英县| 昭觉县| 南华县| 府谷县| 顺义区| 蒙阴县| 固镇县| 宿松县| 嘉荫县| 东乌珠穆沁旗| 桦甸市| 通化市| 垣曲县| 科尔| 沾益县| 宜都市| 大庆市| 滦平县| 元谋县| 张家口市| 商南县| 韶关市| 常熟市| 隆德县| 东安县| 娄烦县| 柳林县| 桐城市| 高密市| 鄯善县| 平邑县| 聂荣县| 平湖市| 石屏县|