欧美三区_成人在线免费观看视频_欧美极品少妇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條評論
主站蜘蛛池模板: 亚洲jizzjizz妇女 | 欧美日韩不卡 | 欧美性生活视频 | 亚洲成人免费网址 | 国产在线观看www鲁啊鲁免费 | 国产亚洲精品久久久久久老妇小说 | 视频一区二区三区免费观看 | 91亚洲在线| 国产高潮久久精品AV无码 | 国产1页 | 欧美日韩一区二区中文字幕视频 | 久久日本精品一区二区三区 | 日韩成人av网站 | 一区二区视屏 | 国产成人精品一区二区三区四区 | 一区二区三区在线 | 日本 | 色qing网站 | 日产一一到六区麻豆 | 久久99深爱久久99精品 | 亚洲免费三区 | 91短视频版官网 | 亚洲宗合| 久久国产视频网站 | 国产日韩欧美一区 | 欧美13videosex性极品 | 91亚洲免费 | 魔法骑士在线观看免费完整版高清 | 午夜看片在线观看 | 日韩中文一区二区三区 | 6月婷婷| 国产色网| 精品视频免费在线 | 青草香蕉精品视频在线观看 | 精品久久久久久国产 | 亚洲综合一二三区 | 最新色图 | 日本免费大片免费视频 | www.youjizz.com亚洲 | 亚洲一区二区三区高清网 | 很黄很色的网站 | 男人用嘴添女人下身免费视频 |