亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

第二人生的源碼分析(七十二)LLFeatureManager類

系統(tǒng) 2495 0
由于顯示卡技術(shù)發(fā)展迅猛,不同的渲染技術(shù)層出不窮。要對(duì)付這種市場(chǎng)的變化,就不能固定一種特定的顯示特性,那么就需要一個(gè)配置文件來定義這種特性。第二人生這個(gè)游戲,是需要特定顯示特性才能運(yùn)行的,如果不符合這種最低要求的環(huán)境就不能運(yùn)行它。下面就來分析類LLFeatureManager,看看第二人生是怎么樣實(shí)現(xiàn)這個(gè)功能的。
LLFeatureManager的聲明代碼如下:
#001?class LLFeatureManager : public LLFeatureList
#002?{
#003?public:
#004? ?? LLFeatureManager() : mInited(FALSE), mTableVersion(0), mSafe(FALSE), mGPUClass(GPU_CLASS_UNKNOWN) {}
#005? ?? ~LLFeatureManager() {cleanupFeatureTables();}
#006?
?
下面函數(shù)加載文件顯示特性。
#007? ?? // initialize this by loading feature table and gpu table
#008? ?? void init();
#009?
#010? ?? void maskCurrentList(const char *name); // Mask the current feature list with the named list
#011?
?
下面函數(shù)從文件里加載顯示特性。
#012? ?? BOOL loadFeatureTables();
#013?
#014? ?? EGPUClass getGPUClass() ??????????? { return mGPUClass; }
#015? ?? std::string& getGPUString() ??????? { return mGPUString; }
#016? ?? BOOL isGPUSupported()?????????????? { return mGPUSupported; }
#017? ??
?
清除顯示特性表。
#018? ?? void cleanupFeatureTables();
#019?
?
獲取特性文件的版本。
#020? ?? S32 getVersion() const????????????? { return mTableVersion; }
#021? ?? void setSafe(const BOOL safe)?????? { mSafe = safe; }
#022? ?? BOOL isSafe() const???????????????? { return mSafe; }
#023?
?
查找給出的名稱屬性表。
#024? ?? LLFeatureList *findMask(const char *name);
#025? ?? BOOL maskFeatures(const char *name);
#026?
#027? ?? // set the graphics to low, medium, high, or ultra.
#028? ?? // skipFeatures forces skipping of mostly hardware settings
#029? ?? // that we don't want to change when we change graphics
#030? ?? // settings
#031? ?? void setGraphicsLevel(S32 level, bool skipFeatures);
#032? ??
?
應(yīng)用 GPU的特性。
#033? ?? void applyBaseMasks();
#034? ?? void applyRecommendedSettings();
#035?
#036? ?? // apply the basic masks.?Also, skip one saved
#037? ?? // in the skip list if true
#038? ?? void applyFeatures(bool skipFeatures);
#039?
#040?protected:
?
加載 GPU的類型。
#041? ?? void loadGPUClass();
#042? ?? void initBaseMask();
#043?
#044?
#045? ?? std::map<LLString, LLFeatureList *> mMaskList;
#046? ?? std::set<LLString> mSkippedFeatures;
#047? ?? BOOL??????? mInited;
#048? ?? S32???????? mTableVersion;
#049? ?? BOOL??????? mSafe;????????????????? // Reinitialize everything to the "safe" mask
#050? ?? EGPUClass?? mGPUClass;
#051? ?? std::string mGPUString;
#052? ?? BOOL??????? mGPUSupported;
#053?};
#054?
?
使用這個(gè)類時(shí),先調(diào)用函數(shù) init來實(shí)始化,然后通過函數(shù)isFeatureAvailable等獲取顯示特性,根據(jù)這些特性來判斷當(dāng)前的顯示卡是否滿足要求。
?

第二人生的源碼分析(七十二)LLFeatureManager類加載顯示特性


更多文章、技術(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)論
主站蜘蛛池模板: 欧美日韩亚洲国产综合 | 奇米影视555| 中国一级特黄大片毛片 | 国产原创中文字幕 | 神马影院午夜我不卡 | 国产精品资源在线观看 | 国产精品400部自产在线观看 | 日韩一级大毛片欧美一级 | 亚洲欧美另类久久久精品能播放的 | 久青草青综合在线视频 | 美女很黄很黄免费 | 99热久久这里只精品国产 | 国产精品嫩草影院99av视频 | 亚洲国产欧洲 | 日本高清中文字幕一区二区三区 | 四虎成人免费观看在线网址 | 一级毛片私人影院 | 91在线精品免费观看 | 久久久久亚洲 | 91尤物在线 | 99热这里只有精品免费国产 | 久久r8这里只精品99re66 | 国产欧美成人不卡视频 | 成人久久久观看免费毛片 | 最新日本免费一区二区三区中文 | 视频在线观看一区 | 91精品免费高清在线 | 中文字幕毛片 | 久久vs国产综合色大全 | 久久这里只有精品2 | 99视频精品全国免费 | 久草首页在线 | a毛片在线免费观看 | 九九热精品视频 | 四虎国产精品永久免费网址 | 国产精品免费入口视频 | 尹人在线视频 | 国产精品一 | 久久羞羞 | 国产日韩在线看 | 性欧美video另类bd |