我正在使用cocos2d并拥有一个1024x1024 spritesheet。
我以RGBA4444格式加载纹理,它消耗2MB标记为'gfxAllocateTextureLevel'。
然后当我从spritesheet创建CCSprites时,它会立即消耗额外的4MB内存,标记为glsmLoadTextureLevelBuffer。
总共6MB,相对于我的应用而言相当多。这是预期的吗?是否需要为每个spritesheet甚至CCSpriteBatchNode创建这样的缓冲区?感谢。
答案 0 :(得分:1)
" GL将生成的纹理与其自己选择的内部组件分辨率"
一起存储
=> GPU /驱动程序可能会根据GPU的需要将像素转换为大小(GPU可能只能在某些像素格式上运行,因此任何不会被制作成一个像素格式的东西),所以我认为你有2MB的RGBA4444和4MB的相同精灵表的RGBA8888。
答案 1 :(得分:0)
我有同样的问题! 我以RGBA8888格式加载纹理,它消耗4MB标记为'gfxAllocateTextureLevel'。
然后当我从spritesheet创建CCSprites时,它会立即消耗额外的4MB内存,标记为glsmLoadTextureLevelBuffer。