日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

第二人生的源碼分析(七十四)LLStartUp類維護(hù)啟

系統(tǒng) 2015 0
像第二人生這么復(fù)雜的大型程序,從你雙擊程序開始,直到它運(yùn)行到真正的圖形界面出來為止,經(jīng)歷的過程是漫長而復(fù)雜的,總共經(jīng)歷的狀態(tài)就有 22個(gè),意思就是說每個(gè)狀態(tài)里只會(huì)做一件事情,如果做那件事情不成功就會(huì)運(yùn)行失敗。那么第二人生采用這種狀態(tài)機(jī)有什么好處呢?在我看來采用狀態(tài)機(jī)的好處是利于把復(fù)雜的過程分解,利于把漫長的狀態(tài)提示給用戶,利于開發(fā)人員調(diào)試和分析,利于程序跳轉(zhuǎn)到不同的狀態(tài)。下面就來先看這個(gè)類的聲明代碼:
#001?class LLStartUp
#002?{
#003?public:
?
判斷是否可以全屏運(yùn)行程序。
#004? ?? static bool canGoFullscreen();
#005? ?????? // returns true if we are far enough along in startup to allow
#006? ?????? // going full screen
#007?
?
設(shè)置狀態(tài)變量。
#008? ?? // Always use this to set gStartupState so changes are logged
#009? ?? static void setStartupState( S32 state );
?
獲取當(dāng)前狀態(tài)變量。
#010? ?? static S32?getStartupState()?????????????? { return gStartupState;???? };
#011?
?
讓游覽器顯示 URL串的內(nèi)容。
#012? ?? static bool dispatchURL();
#013? ?????? // if we have a SLURL or sim string ("Ahern/123/45") that started
#014? ?????? // the viewer, dispatch it
#015?
?
保存 SL的URL命令。
#016? ?? static std::string sSLURLCommand;
#017? ?????? // *HACK: On startup, if we were passed a secondlife://app/do/foo
#018? ?????? // command URL, store it for later processing.
#019?
#020?protected:
?
保存啟動(dòng)運(yùn)行狀態(tài)。
#021? ?? static S32 gStartupState;?????????? // Do not set directly, use LLStartup::setStartupState
#022?};
?
?
?
下面再來分析幾個(gè)函數(shù)的實(shí)現(xiàn)代碼:
#001?bool LLStartUp::canGoFullscreen()
#002?{
?
只有大于 STATE_WORLD_INIT狀態(tài),也就是渲染第二人生時(shí)才允許全屏顯示。
#003? ?? return gStartupState >= STATE_WORLD_INIT;
#004?}
?
?
調(diào)用這個(gè)函數(shù)來保存不同時(shí)候的狀態(tài),并且把這個(gè)狀態(tài)輸出到調(diào)試窗口,方便開發(fā)人員查找出錯(cuò)的原因。
#001?// static
#002?void LLStartUp::setStartupState( S32 state )
#003?{
#004? ?? llinfos << "Startup state changing from " << gStartupState << " to " << state << llendl;
#005? ?? gStartupState = state;
#006?}

第二人生的源碼分析(七十四)LLStartUp類維護(hù)啟動(dòng)狀態(tài)機(jī)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 抚顺县| 建阳市| 卢湾区| 五大连池市| 吉木乃县| 石门县| 寻乌县| 浦江县| 磴口县| 潞城市| 顺平县| 大姚县| 友谊县| 北京市| 木兰县| 鄯善县| 建始县| 瑞昌市| 弥勒县| 正定县| 永修县| 平顶山市| 长岭县| 东安县| 永德县| 内江市| 邻水| 黎平县| 云安县| 策勒县| 盐源县| 陆良县| 武鸣县| 新巴尔虎左旗| 芜湖市| 鸡西市| 长宁县| 莱西市| 方山县| 达日县| 余江县|