zoukankan      html  css  js  c++  java
  • cocos2dx 10.1版本 修复真机上白屏问题

    ########################################################

    10.1 版本修改底层记录 (游戏开发群:主席)

    群号:44727718

    #######################################################

    1. 修改:CCTextureCache.h
        1.)添加:VolatileTexture::addDataTexture(CCTexture2D *tt,const void* data,CCTexture2DPixelFormat pixelFormat,unsigned int pixelsWide,unsigned int pixelsHigh,const CCSize& c             ontentSize)
        让其增加数据备份功能:

    void VolatileTexture::addDataTexture(CCTexture2D *tt,const void* data,CCTexture2DPixelFormat pixelFormat,unsigned int pixelsWide,unsigned int pixelsHigh,const CCSize& contentSize)
    {
    if (isReloading)
    return;

    VolatileTexture *vt = 0;
    std::list<VolatileTexture *>::iterator i = textures.begin();
    while( i != textures.end() )
    {
    VolatileTexture *v = *i++;
    if (v->texture == tt) {
    vt = v;
    break;
    }
    }

    if (!vt)
    vt = new VolatileTexture(tt);

    vt->m_eCashedImageType = kImageData;
    vt->m_PixelFormat = pixelFormat;
    vt->m_TextureSize = contentSize;
    if(vt->m_pTextureData)
    {
    delete[] vt->m_pTextureData;
    vt->m_pTextureData = 0;
    }
    switch(pixelFormat)
    {
    case kCCTexture2DPixelFormat_RGBA8888:
    case kCCTexture2DPixelFormat_RGBA4444:
    case kCCTexture2DPixelFormat_RGB5A1:
    case kCCTexture2DPixelFormat_RGB565:
    case kCCTexture2DPixelFormat_A8:
    vt->m_pTextureData = new char[pixelsWide * pixelsHigh * 4];
    memcpy(vt->m_pTextureData,data,pixelsWide * pixelsHigh * 4);
    break;
    case kCCTexture2DPixelFormat_RGB888:
    vt->m_pTextureData = new char[pixelsWide * pixelsHigh * 3];
    memccpy(vt->m_pTextureData,data,pixelsWide * pixelsHigh * 3);
    break;
    }

    }

      2.)CCTextureCache.cpp 
      

    VolatileTexture::~VolatileTexture()
    {
    //Ambition 添加
    if(this->m_pTextureData)
    {
    delete [] this->m_pTextureData;
    }
    textures.remove(this);
    }

    2.修改:CCTexture2D.h

      1.)cpp文件里 initWithData(const void *data, CCTexture2DPixelFormat pixelFormat, unsigned int pixelsWide, unsigned int pixelsHigh, const CCSize& contentSize)

       

    //Ambition 添加
    #if CC_ENABLE_CACHE_TEXTTURE_DATA
    VolatileTexture::addDataTexture(this,data,pixelFormat,pixelsWide,pixelsHigh,contentSize);
    #endif




  • 相关阅读:
    判断浏览器的类别
    第2章计算机系统第五版Aimin.rar
    QQ软件已被破坏或部分文件丢失
    关于SqlServer服务无法启动的症状分析和解决方法
    T4模版生成SpringMVC构造REST代码:第三篇 用T4模版生成POCO类代码
    《深入理解计算机系统》笔记(四)虚拟存储器,malloc,垃圾回收【插图】
    Cocos2dx高级开发教程:制作自己的《捕鱼达人》
    算法设计与分析基础(第3版 影印版)
    MySQL数据库常用操作
    第一次面试
  • 原文地址:https://www.cnblogs.com/GameDeveloper/p/2315966.html
Copyright © 2011-2022 走看看