RenderTextureのピクセルデータ操作
Cocos2d-xでN2NovelEngineの部分移植をしているのですが、スプライトのピクセル処理のやり方を備忘録として記事にしておきます。
cocos2d-x v3.3を使用しています。
Cocos2d-xではプライマリスクリーンに画像描画するには、RenderTextureを使うみたいですね。
ピクセル処理をするにはImageからデータを取得する必要があるみたいです。
// 描画済みのRenderTextureとする
RenderTexture *rt;
// ピクセルデータを取得
Image *img = rt->newImage();
unsigned char *data = img->getData();
int w = img->getWidth();
int h = img->getHeight();
// ピクセル処理
Color4B c;
for (int y = 0; y < h; y++) {
for (int x = 0; x < w; x++) {
// 各ピクセルのカラーを取得
c.r = data[y * w * 4 + x * 4 + 0];
c.g = data[y * w * 4 + x * 4 + 1];
c.b = data[y * w * 4 + x * 4 + 2];
c.a = data[y * w * 4 + x * 4 + 3];
}
}
後は各ピクセルのカラーを調整すれば処理できます。
なるほど。
ID: 00001 Posted by 匿名希望 2016/09/12 18:08:35