在wp8平台 使用Label的时候, 多次调用setString设置不同的字符串会导致部分字符无法显示 (非ut8中文问题)
调试发现, 调用setString的时候, 字符串里包含有非缓冲的字符的时候, 已缓冲的字符会无法显示, 而未缓冲的字符可以显示。
最后问题定位在
_atlasTextures->updateWithData(data, 0, startY,
CacheTextureWidth, _currentPageOrigY - startY + _commonLineHeight);
updateWithData是调用glTexSubImage2D来更新纹理数据的。 在其他平台正常, 但在wp8平台, 不知道为何, 调用glTexSubImage2D更新纹理时 在更新之前会把原有的纹理数据全部清零。
目前暂时的修改方法是
把updateWithData调用替换成
_atlasTextures->initWithData(_currentPageData, _currentPageDataSize,
pixelFormat, CacheTextureWidth, CacheTextureHeight, Size(CacheTextureWidth, CacheTextureHeight));
但这样效率上是略有降低的, 心中不爽, 不知道有没有其他人遇到这个问题, 一起来分享一下