当前搜索:

第二人生的源码分析(七十六)判断程序运行多个实例

随着多任务系统的流行,可以轻易地把同一个程序同时运行多个实例,这对于一般的应用程序来说,是非常有用的,也大大地提高电脑的使用率。但是对于像第二人生这样的游戏来说,运行多个实例,是不需要的,也是不现实的。因为它需要非常多的CPU计算,独占CPU还不够用,别说运行多个实例了,并且它是全屏运行的游戏,多个程序运行也不必要。那么第二人生里是使用什么方法来实现跨平台的多个实例运行的检测呢?下面就来看看这段代...
阅读(2243) 评论(0)

第二人生的源码分析(七十五)启动状态详细说明

前面介绍中说到启动状态有22种,那么这些状态是什么呢?现在就来分析这些状态,它的定义如下:#001 enum EStartupState{#002    STATE_FIRST,                    // Initial startup启动开始状态。 #003    STATE_MEDIA_INIT,               // Initialzie m...
阅读(3280) 评论(0)

第二人生的源码分析(七十四)LLStartUp类维护启动状态机

像第二人生这么复杂的大型程序,从你双击程序开始,直到它运行到真正的图形界面出来为止,经历的过程是漫长而复杂的,总共经历的状态就有22个,意思就是说每个状态里只会做一件事情,如果做那件事情不成功就会运行失败。那么第二人生采用这种状态机有什么好处呢?在我看来采用状态机的好处是利于把复杂的过程分解,利于把漫长的状态提示给用户,利于开发人员调试和分析,利于程序跳转到不同的状态。下面就来先看这个类的声明代码...
阅读(2498) 评论(0)

第二人生的源码分析(七十三)LLFeatureManager类分析特性文件

前面介绍类LLFeatureManager的声明部分,现在继续前面的内容进行分析,来看看它的实现代码,到底是怎么获取文本文件里的内容。先来看看它需要分析显示特性文件的内容是怎么样的,如下:version 10 // NOTE: This is mostly identical to featuretable_mac.txt with a few differences// Shou...
阅读(2236) 评论(0)

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

由于显示卡技术发展迅猛,不同的渲染技术层出不穷。要对付这种市场的变化,就不能固定一种特定的显示特性,那么就需要一个配置文件来定义这种特性。第二人生这个游戏,是需要特定显示特性才能运行的,如果不符合这种最低要求的环境就不能运行它。下面就来分析类LLFeatureManager,看看第二人生是怎么样实现这个功能的。类LLFeatureManager的声明代码如下:#001 class LLFe...
阅读(2776) 评论(0)

第二人生的源码分析(七十一)实现闪屏窗口

现在的电子信息技术发展得很快,特别像CPU这样的硬件,已经进入到多核时代,运行程序的速度比以前快了很多,但人类的需求是无止境的,因此写的程序也越来越大,越来越复杂,导致程序的初始化时,就变得比原来更加漫长。在人机交互理论里,让人等待超过10秒的时间,心情就会变得急躁,感觉这个程序不好用。那么有什么方法解决这个问题呢?在我们的社会里,到处都有排队等待的现象,比如让你去银行办理业务,如果让你站在那里等...
阅读(2469) 评论(0)

第二人生的源码分析(七十)LLXmlTreeParser类生成XML树

LLXmlTreeParser类是继承类LLXmlParser,主要实现创建树节点,并且把树节点保存起来,这样就可以方便外面查找XML里的数据。下面先来分析这个类的声明:#001 class LLXmlTreeParser : public LLXmlParser#002 {#003 public: 类的构造函数和析构函数。#004    LLXmlTreeParser(L...
阅读(1970) 评论(2)

第二人生的源码分析(六十九)使用LLXmlTree类来分析XML配置文件

前面已经介绍使用expat库来分析XML数据,那么在第二人生里是怎么样分析XML配置文件的呢?现在就来分析这方面的问题,先来看看第二人生分析配置文件调用关系,如下:1.       LLAppViewerWin32::init()2.       LLAppViewer::init()3.       LLControlGroup::loadFromFile()4.       L...
阅读(3665) 评论(1)

第二人生的源码分析(六十八)LLXMLNode使用Expat库分析XML文件

在前面看到怎么打开XML文件,在那个函数的后面调用parseBuffer函数来分析XML数据,那么在这个函数是怎么样进行XML数据分析的呢?现在就仔细地分析这个函数的代码,它的代码如下:#001 // static#002 bool LLXMLNode::parseBuffer(#003    U8* buffer,#004    U32 length,#005    LLXM...
阅读(3265) 评论(2)

第二人生的源码分析(六十七)LLXMLNode使用Expat库打开文件

前面介绍了什么是expat库,也介绍怎么使用它来打开XML文件进行分析,接着下来就来分析第二人生里是怎么样使用它。详细的函数代码如下:#001 // static#002 bool LLXMLNode::parseFile(#003    LLString filename,#004    LLXMLNodePtr& node,#005    LLXMLNode* defaul...
阅读(3122) 评论(1)

第二人生的源码分析(六十六)使用Expat XML解析器的例子

要了解第二人生里使用expat XML解析器之前,先来仔细地分析一下怎么样使用expat库的小例子,看看具体调用了那些接口函数,是否会很复杂的呢?‘它的例子程序如下:#001 /*****************************************************************#002   * outline.c#003   *#004   * Cop...
阅读(6971) 评论(4)

第二人生的源码分析(六十五)Expat XML解析器的介绍

互联网发展得很快,都是源自于使用了超文本的表达方式。比如你查看一篇文章,看到不懂的关键字,就可以通过链接去查看它的内容,看完之后再回来接着看原来的东西,这样比较适合学习的方式。使用HTML标记的文本,是结构化储存的,这样的表达方式才可以实现超级连接。由于HTML具有超强的表达能力,也就在互联网上生存下来,那么人们就会想到能不能使用这种方式来保存所有需要保存的内容呢?慢慢地就开发XML标记语言,用来...
阅读(5840) 评论(2)

第二人生的源码分析(六十四)类LLCurlEasyRequest实现Http请求

当第二人生登录时,它是通过HTTP请求来发送数据到服务器的,为了方便使用前面介绍的libcurl库,那么再提供一个HTTP特别请求类来实现这个功能。通过这个类LLCurlEasyRequest就可以与HTTP服务器进行交流数据了,具体声明代码如下:#001 class LLCurlEasyRequest#002 {#003 public: 在构造函数里创建类Multi和类Eas...
阅读(2070) 评论(0)

第二人生的源码分析(六十三)类Multi实现多请求

从前面看到类Easy是封装了一个请求,但往往需要传送多个请求的情况,这样就需要实现多个请求能同时工作的类,在第二人生里是把这部份功能放在类Multi里的,同样它也是LLCurl类的嵌套类。它的声明如下:#001 class LLCurl::Multi#002 {#003    LOG_CLASS(Multi);#004 public:#005    #006    Mult...
阅读(1971) 评论(0)

第二人生的源码分析(六十二)类Easy实现多协议文件传送

从上一节里可以看到,在类LLCurl声明里主要声明嵌套类Easy,最后通过嵌套类Easy来实现libcurl功能,下面就来仔细地分析它。它的类声明如下:#001 class LLCurl::Easy#002 {#003    LOG_CLASS(Easy);#004 #005 private:#006    Easy();#007    #008 public:...
阅读(5273) 评论(3)
29条 共2页1 2 下一页 尾页
    个人资料
    • 访问:5898479次
    • 积分:76235
    • 等级:
    • 排名:第22名
    • 原创:1624篇
    • 转载:61篇
    • 译文:11篇
    • 评论:2102条
    文章存档