Cocos2d-x 异步加载纹理学习

前端之家收集整理的这篇文章主要介绍了Cocos2d-x 异步加载纹理学习前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

数据存储

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

异步加载数据队列

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

异步加载接口 addImageAsync@H_403_5@

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

加载线程

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

异步加载回调函数 addImageAsyncCallBack@H_403_5@

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

简略图示 :

猜你在找的Cocos2d-x相关文章