#define TEST_WIDTH 160 #define TEST_HEIGHT 224 // create image and load external data imgSrc = vgCreateImage(imgGirlAlphaFormat, TEST_WIDTH, TEST_HEIGHT, VG_IMAGE_QUALITY_NONANTIALIASED); vgImageSubData(imgSrc, (const void *)imgGirlAlphaData, imgGirlAlphaDataStride, imgGirlAlphaFormat, 0, 0, imgGirlAlphaWidth, imgGirlAlphaHeight); imgChildren[0] = vgChildImage(imgSrc, 0, 0, TEST_WIDTH / 2, TEST_HEIGHT / 2); imgChildren[1] = vgChildImage(imgSrc, TEST_WIDTH / 2, 0, TEST_WIDTH / 2, TEST_HEIGHT / 2); imgChildren[2] = vgChildImage(imgSrc, 0, TEST_HEIGHT / 2, TEST_WIDTH / 2, TEST_HEIGHT / 2); imgChildren[3] = vgChildImage(imgSrc, TEST_WIDTH / 2, TEST_HEIGHT / 2, TEST_WIDTH / 2, TEST_HEIGHT / 2); vgSeti(VG_SCISSORING, VG_FALSE); vgSeti(VG_MASKING, VG_FALSE); col[0] = 0.1f; col[1] = 0.3f; col[2] = 0.7f; col[3] = 1.0f; vgSetfv(VG_CLEAR_COLOR, 4, col); vgClear(0, 0, 256, 256); vgSeti(VG_BLEND_MODE, VG_BLEND_SRC_OVER); vgSeti(VG_IMAGE_MODE, VG_DRAW_IMAGE_NORMAL); vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE); border = 10.0f; vgLoadIdentity(); vgTranslate(50.0f, 10.0f); vgDrawImage(imgChildren[0]); vgLoadIdentity(); vgTranslate(50.0f + TEST_WIDTH / 2 + border, 10.0f); vgDrawImage(imgChildren[1]); vgLoadIdentity(); vgTranslate(50.0f, 10.0f + TEST_HEIGHT / 2 + border); vgDrawImage(imgChildren[2]); vgLoadIdentity(); vgTranslate(50.0f + TEST_WIDTH / 2 + border, 10.0f + TEST_HEIGHT / 2 + border); vgDrawImage(imgChildren[3]); saveDrawingSurface(f, "image_children_npot.png", "Test non power of two child images.", 0, 0, 256, 256); eglSwapBuffers(display, surface); // destroy images vgDestroyImage(imgChildren[0]); vgDestroyImage(imgChildren[1]); vgDestroyImage(imgChildren[2]); vgDestroyImage(imgChildren[3]); vgDestroyImage(imgSrc); #undef TEST_WIDTH #undef TEST_HEIGHT