欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

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

系統 2164 0
由于顯示卡技術發展迅猛,不同的渲染技術層出不窮。要對付這種市場的變化,就不能固定一種特定的顯示特性,那么就需要一個配置文件來定義這種特性。第二人生這個游戲,是需要特定顯示特性才能運行的,如果不符合這種最低要求的環境就不能運行它。下面就來分析類LLFeatureManager,看看第二人生是怎么樣實現這個功能的。
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?
?
下面函數加載文件顯示特性。
#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?
?
下面函數從文件里加載顯示特性。
#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? ??
?
應用 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?
?
使用這個類時,先調用函數 init來實始化,然后通過函數isFeatureAvailable等獲取顯示特性,根據這些特性來判斷當前的顯示卡是否滿足要求。
?

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


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: av国产精品 | 成人片黄网站A片免费 | 亚洲精品在线免费观看视频 | 狠狠操狠狠操狠狠操 | 偶像练习生在线免费观看 | 精品麻豆cm视频在线看 | 96自拍视频 | 久久久精品网 | 亚洲国产欧美在线 | 波多久久夜色精品国产 | 91视频首页 | 丁香综合五月 | 欧美1024性视频 | 在线色网 | 日韩天天干 | 欧美日韩乱| 日日a.v拍夜夜添久久免费 | 欧美成人h版在线观看 | 欧美日韩一区二区三区自拍 | 波多野结衣在线资源 | 日韩视频在线一区 | 久久99爱re热6在线播放 | 久久久久无码国产精品一区 | 中文字幕日本视频 | 欧美高潮| 天堂在线观看中文字幕 | 韩国精品一区 | 欧美一区二区三 | 天天操综合 | 哥斯拉大战金刚2在线观看免费完整版 | 麻豆视频在线播放 | av一区二区三区在线观看 | 国产肝交视频在线观看 | 一级毛片免费播放 | 午夜视频在线观看www中文 | 99re在线观看| 天天操天天操天天 | 免费观看一级毛片 | 作爱视频免费观看 | 天天色天天碰 | 国产精品视频1区 |