Cocos2d-x 异步加载纹理学习

数据存储

单例类 CCTextureCache 有一个字典m_pTextures,其中key是文件名,数据是cocos2d-x的纹理类指针CCTexture2D* .

异步加载数据队列

  • 保存 AsyncStruct*(需要加载文件和回调信息)的 s_pAsyncStructQueue 队列.
  • 保存ImageInfo*(加载后图片信息) 的s_pImageQueue队列 .

异步加载接口 addImageAsync

  • 若初次调用,则启动加载线程 loadImage
  • 图片和回调信息保存pushs_pAsyncStructQueue

加载线程

循环 :
* 从 s_pAsyncStructQueue 队列中top 一个需要加载的文件信息.
* 加载文件数据
* 将加载的数据pushs_pImageQueue队列

异步加载回调函数 addImageAsyncCallBack

  • s_pImageQueue队列中top加载后数据.
  • 利用数据创建纹理类
  • 将纹理加入m_pTextures .

简略图示 :

相关文章

操作步骤 1、创建cocos2d-x工程 2、新建 Scene1.cpp Scene1.h Scene1.h代码 #ifndef __SCENE1_H__#defi...
开发环境:OS(WINDOWS 8.1 X64 企业版) cocos2d-x 2.2.1 vs2010 想给vs安装上cocos的模版,执行Install...
把创建项目做成一个批处理,当创建项目时可以省时省力很多。 操作步骤 1、在 E:cocos2d-x-2.2.1toolspr...
https://www.cnblogs.com/JiaoQing/p/3906780.html 四个响应函数 1 EventListenerPhysicsContact* evC...
转载于 http://www.cnblogs.com/kenkofox/p/3926797.html 熟悉js的dom事件或者flash事件的,基本都能立...
ScrollView(滚动容器)加载大量item时会导致游戏界面的卡顿,严重时整个界面会出现卡死的情况。最近项...