0

次のコードを使用してイメージを作成できます。

int width,height;
static VGImage engine_light_img = VG_INVALID_HANDLE;
// image 
const unsigned char engine_light_bitmap_100_100[40000] =
{...};


width = 300;
height = 150;
engine_light_img = vgCreateImage(VG_sBGRA_8888,800,480, VG_IMAGE_QUALITY_BETTER);
vgImageSubData(engine_light_img, (const void *)(engine_light_bitmap_100_100+ (width * (height - 1)) * 4),width * -4,VG_sBGRA_8888, 0,40,width,height);  
vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE);
vgDrawImage(engine_light_img);
vgFinish();

この関数 vgImageSubData を使用して、画像engine_light_bitmap_100_100[40000]のデータをロードしています。データはすでに定数であり、フラッシュ内のメモリを占有しています。

関数vgCreateImageを呼び出すたびに、800x400x4 バイトの RAM メモリがブロックされますか?

4

0 に答える 0