cocos2dx 2.1.4 程序运行脉络解析3—解析CCEGLView
来源:互联网 发布:主从 mysql spring 编辑:程序博客网 时间:2024/06/07 06:19
这篇主要是要解决上一篇遗留下的突出问题:
回忆上两篇分析程序运行时有这么几个函数很容易混淆,我按照顺序先一次将他们列出来:
main函数:
CCEGLView* eglView = CCEGLView::sharedOpenGLView();
eglView->setViewName("HelloCpp");
eglView->setFrameSize(2048, 1536);///////设置frame的大小,标号1
// The resolution of ipad3 is very large. In general, PC's resolution is smaller than it.
// So we need to invoke 'setFrameZoomFactor'(only valid on desktop(win32, mac, linux)) to make the window smaller.
eglView->setFrameZoomFactor(0.4f);///////设置view frame的缩放比例,标号2
AppDelegate::applicationDidFinishLaunching()函数:
CCDirector* pDirector = CCDirector::sharedDirector();//初始化director
CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();
pDirector->setOpenGLView(pEGLView);///////设置关联到director中并设置director的winSizeInPoints属性与view的resolutionSize相等,标号3
// Set the design resolution
pEGLView->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, kResolutionNoBorder);///////设置view的分辨率,标号4
... ...
pDirector->setContentScaleFactor(...)///////设置director的缩放比例,标号5
归纳一下,对于缩放比例一共有3种:
1.CCEGLViewProtocol中的 m_fScaleX,m_fScaleY
2.CCEGLView 的 frameZoomFactor:m_fFrameZoomFactor
3.CCDirector的 m_fContentScaleFactor
我带着分不清这3中scale的疑惑来解析下面的东西:
好!先看CCEGLViewProtocol
里面的最重要的函数:
进行相关设置后director会重新设置投影矩阵:
在设置投影矩阵前它先设置了screen map的viewPort:
至于director的m_fContentScaleFactor,查看代码它只设置完属性后将坐下脚的label进行了相关的处理而且其他模块也没有用到该属性值,所以就无视他吧~~~
给出他的代码:
先写到这,分析代码的东西都分析完毕,以后有时间贴几个测试的结果上去,感谢看完这篇文章的淫~~~
有错误欢迎之处哈!
- cocos2dx 2.1.4 程序运行脉络解析3—解析CCEGLView
- cocos2dx 2.1.4 程序运行脉络解析2—解析CCDirector
- cocos2dx 2.1.4 程序运行脉络解析1— win32版本的相关代码调用流程
- Cocos2d-x中的CCEGLView.mm文件解析
- cocos2dx 2.1.4 shader解析-1
- cocos2dx进阶学习之CCEGLView
- cocos2dx进阶学习之CCEGLView
- cocos2dx 2.1.4 shader解析3 - cocos2dx自带的shader分析
- cocos2dx 2.1.4 shader解析3 - cocos2dx自带的shader分析
- cocos2dx 2.1.4 shader解析3 - cocos2dx自带的shader分析
- java程序运行过程解析
- java程序运行过程解析
- cocos2dx--cocos2dx3.1.1运行报无法解析的外部符号
- MFC之旅——分析一个MFC程序运行脉络
- cocos2dx 2.1.4 shader解析2-CCGLProgram分析
- cocos2dx lua解析csv成lua配置文件,方便程序调用
- 程序及其运行时内存分配解析
- 简单解析PHP程序的运行流程
- Ubuntu 下解压缩文件
- js获取url路径
- display:none和visibility:hidden区别
- 单例模式
- oracle 削除データの復帰方法(flash back)
- cocos2dx 2.1.4 程序运行脉络解析3—解析CCEGLView
- 关于C++中的友元函数的总结
- poj 1226|| hdu 1238 Substrings(KMP)
- 双系统修复ubuntu grub2引导的方法
- Ananagrams-UVA 156 白书第五章
- Mac mini+Parallels 8.0+FreeBSD-8.4-RELEASE-amd64-disc1 全纪录
- Leetcode: Longest Valid Parentheses
- iptables常用命令
- 新建个博客