Cocos2dx引擎12-OpenGLES渲染之LayerColor

  次阅读 来源:互联网(转载协议) 2015-09-27 15:28 我要评论(0)

在前面微博中讲述了Cocos2dx引擎OpenGL渲染准备Shader方面,本博客中将使用LayerColor来讲述OpenGL的渲染过程。

1、LayerColor对象创建

添加LayerColor元素到游戏中:

autolayerColor = LayerColor::create(Color4B(255, 0, 0, 255), 100, 100);

layerColor->setPosition(100,100);

this->addChild(layerColor);

下面是LayerColor::create方法:

LayerColor* LayerColor::create(const Color4B& color, GLfloat width, GLfloat height)

{

LayerColor * layer = new LayerColor();

if( layer &&layer->initWithColor(color,width,height)) {

layer->autorelease();

return layer;

}

CC_SAFE_DELETE(layer);

return nullptr;

}

1、使用new操作符创建新LayerColor对象

2、使用initWithColor方法初始化新建的LayerColor对象

3、LayerColor创建并初始化成功后,将该对象加热自动内存管理

在LayerColor::initWithColor方法中:

boolLayerColor::initWithColor(const Color4B& color, GLfloat w, GLfloat h){

if (Layer::init()){

_blendFunc =BlendFunc::ALPHA_NON_PREMULTIPLIED;

_displayedColor.r = _realColor.r =color.r;

_displayedColor.g = _realColor.g =color.g;

_displayedColor.b = _realColor.b =color.b;

_displayedOpacity = _realOpacity =color.a;

for (size_t i = 0;i

1、调用Layer::init()方法,该方法的主要作用设置默认大小,其实在下面会重新设置LayerColor大小

2、设置混合模式为_blendFunc =BlendFunc::ALPHA_NON_PREMULTIPLIED

3、设置四个顶点的颜色

4、设置四个顶点的坐标,并设置Layer的大小

5、设置LayerColor渲染所使用Shader程序对应的GLProgramState

LayerColor其实是一个四边形,OpenGL会以四边形的方式渲染LayerColor,故需要设置四边形的顶点坐标&顶点颜色;所有的GLProgramState都会保持在GLProgramStateCache::_glProgramStates中,首次获取该GLProgramState时会新建GLProgramState对象,然后将该对象插入到GLProgramStateCache::_glProgramStates中。

2、LayerColor渲染

首先先看一下游戏的Function调用流程:

Application::run()

{

……

DisplayLinkDirector::mainLoop()

……

}

DisplayLinkDirector::mainLoop()

{

……

Director::drawScene()

……

……

}

Director::drawScene()

{

……

Node::visit(…)

……

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

    teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

  • Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

    Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

  • 2018深圳国际人工智能展览会 2018 shenzhen International Artif

    2018深圳国际人工智能展览会 2018 shenzhen International Artif

  • Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

    Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...