第二人生的源码分析(七十二)LLFeatureManager类加载显示特性

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/caimouse/article/details/2483872
由于显示卡技术发展迅猛,不同的渲染技术层出不穷。要对付这种市场的变化,就不能固定一种特定的显示特性,那么就需要一个配置文件来定义这种特性。第二人生这个游戏,是需要特定显示特性才能运行的,如果不符合这种最低要求的环境就不能运行它。下面就来分析类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等获取显示特性,根据这些特性来判断当前的显示卡是否满足要求。
 
展开阅读全文

程序猿的单相思第二人之第一集

05-07

rn 今天五四青年节(那天晚上手机敲的。现在才有时间发),正好在csdn上看到某兄发的程序猿的单相思。联想自己的单相思。心中一团苦涩。果然IT男。情商是硬伤啊! rn 我个人对于日子太不敏感。以至于不记得她是上月哪天来公司的。大概是13号。她刚来第一天自我介绍。正好站在我旁边。所以她说的自我介绍23岁我记住了。长相我看清楚了。好吧。我承认。第一眼我看着就觉得以后我媳妇就是要这样子的。她158。80斤左右。皮肤白。很骨感。腿好看。看着不像20了的。哦。忘记说本人了。呵呵。纯屌丝一个。个小,164。105斤。最近吃老妈做的饭。应该又涨了2斤肉。皮肤也白。IT程序猿。心态好。所以买了个萌的双肩包。各种卖萌。有人都叫我小朋友!rn 看吧。我看着小。皮肤白。所以我也一直喜欢看着跟我一样类型的女生。这样走在一起就像二个没长大的娃哈哈,要是生个萝莉或正太肯定一家人特有爱!哎呦。不小心扯远了。我是前端开发。她是策划弄文案的。虽然她是我要找的那种。但我还不是那种看到了就直接冲上去的管不住自己。所以好多天都是忙自己的事情。没有交际。直到某一天下班。。。 rn 那天应该是4.18周六下班。公司单休伤不起啊。那天白天天气不错。结果下班时候暴雨!广州的朋友应该有印象爆到什么程度。我打着伞,走在公司楼下没法动了。路上全是水。天上雨水那喷的!我想算了。先屋檐下等等再走。等一会看见了一兄弟跑来跑去。玩的挺好的同事。嗯。他看到我在哪里等雨。过会。我见她跑去了路边。来我这时多了个妹子。嗯。就是那妹子。过了会她主策也来了我们这。她站在我旁边。10来厘米的距离。以至于我看的很清楚白的程度以及精细的五官。rn 我说:妹子广州天气你都不带伞的。rn 她说:我没带伞的习惯。rn 我说:你怎么在站牌哪里那么久没走?rn 她说:雨太大了。我准备打的回去,一个小时都没打到车!rn 你看我就这么随便找了句话扯开话题之后大伙随便扯了扯。之后我们等到雨小了准备一起去地铁站。撑伞走的那会我看她看着我是准备和我打把伞的。可能她只是无意识的而已。但说真的我很高兴。不过无奈啊。单人伞太小了。旁边兄弟伞超大。我对她说。你和XXX一起吧。我这伞太小了。我就在想。让你丫伞那么小。傻逼了吧。之后她还是选择了打车。路上积水完全过不去!她和她主策一起打车走了。因为顺路。而我和XXX等不到第二辆车。艹蛋的义无反顾的坐地铁去了。路上聊到这妹子。我跟他说。这妹子感觉不错。我忍不住要下手吖!兄弟说顶力支持!回到家。膝盖下全湿的。我更新了心情:好久没踩水这么开心了。rn 时间更新到下周一。早上上班正好和她一起在门口等电梯。不过正好上去所以在电梯里面没跟她打招呼。直到进了公司打完卡看见她带伞了。 rn 我说:妹子早啊,今天带伞了啊!rn 她回头看我。不过正好进里面的门。嗯。就是看了眼。估计我把她吓到了。没想起来我是谁。之后她去了她座位。淫荡的一天开始啦!上班了。rn 到了下午。我手上活忙的差不多了。想起她。我在公司群找到她QQ加了她。发了个嘿嘿嘿。大概2分钟后小企鹅闪烁中。我一看被拒绝了。rn 回了个消息:谁?rn 我只好再加次。不能被拒绝就不加了啊。rn 这次打了个:上次和你一起等雨回家的。rn 之后她通过了。好歹知道我是谁了不是。下午我和她各种聊天。得知她是个药罐子。身体不好老生病。我回她:药罐子。她说:我不是,我是小乖猫。呵呵。rn 下午聊的很尽兴。她说她请假了的。6点就走。肚子不舒服。rn 我说:嗯!好好照顾自己。早点回去休息。很明显亲戚来了肚子疼。女人吖。rn 到6点。她下班走了(公司一般要加班到九点)。快到7点时候。QQ突然收到她消息:我还在公司楼下!rn 我问:你干嘛还在楼下呢,小乖猫。rn 她说:我现在是大红花了哈哈。rn 然后我就大脑短路了。大红花是什么玩意!rn 问她她说:那个来了。rn 真够佩服她想象的。之后她说她在等朋友。她朋友还堵在路上没来。rn 我说:哦,还多久啊。你要早点吃饭早点回去休息着。rn 心里一直在想。这个接她的男的女的?各种心神不定。之后陪她聊了会。她朋友到了一起走了。我也继续加班了。 论坛

没有更多推荐了,返回首页