求教一下啊, 在cocos2dx里怎么正确加载一张A8纹理呢?我有

求教一下啊, 在cocos2dx里怎么正确加载一张A8纹理呢?我有一个只有alpha通道的8位png,想用它做遮罩,在加载它之前,如果设定了
CCTexture2D::setDefaultAlphaPixelFormat(kCCTexture2DPixelFormat_A8);
那么会创建一个A8的opengl texture,但shader里不管取r,g,b哪个通道都是0,a通道都是1,遮罩信息完全丢失了。
如果不指定上面的A8格式,那么取r,g,b任何一个通道得到的值都是正确的,但是那样就成为32位纹理了啊,太耗内存了。
请问,怎样才能只创建opengl的8位纹理,又能取到正确的遮罩数据?

自己搞定了,cocos2dx代码就有问题!
首先,CCImage在加载8位灰图时就没有加对,还是在内存里加成了32位图
然后,CCTexture2d在创建kCCTexture2DPixelFormat_A8类型的纹理时,是把32位数据的A通道给转了进来,而根据前述,8位图加成32位图了,灰度存在于r/g/b通道上,a通道是1.0!