vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_BETTER); vgSeti(VG_IMAGE_QUALITY, VG_IMAGE_QUALITY_BETTER); vgSeti(VG_BLEND_MODE, VG_BLEND_SRC_OVER); vgSeti(VG_SCISSORING, VG_FALSE); vgSeti(VG_MASKING, VG_FALSE); vgSeti(VG_IMAGE_MODE, VG_DRAW_IMAGE_NORMAL); col[0] = 1.0f; col[1] = 1.0f; col[2] = 1.0f; col[3] = 1.0f; vgSetfv(VG_CLEAR_COLOR, 4, col); vgClear(0, 0, 256, 256); // create draw image and load external data img = vgCreateImage(imgGirlFormat, imgGirlWidth, imgGirlHeight, VG_IMAGE_QUALITY_FASTER); vgImageSubData(img, (const void *)&imgGirlData[imgGirlWidth * (imgGirlHeight - 1)], -imgGirlDataStride, imgGirlFormat, 0, 0, imgGirlWidth, imgGirlHeight); vguComputeWarpQuadToQuad(40.0f, 80.0f, 128.0f, 40.0f, 128.0f, 120.0f, 236.0f, 80.0f, 0.0f, 0.0f, 256.0f, 0.0f, 0.0f, 256.0f, 256.0f, 256.0f, matrix); vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE); vgLoadMatrix(matrix); vgDrawImage(img); vguComputeWarpQuadToQuad(40.0f, 80.0f, 128.0f, 120.0f, 40.0f, 200.0f, 128.0f, 240.0f, 0.0f, 0.0f, 256.0f, 0.0f, 0.0f, 256.0f, 256.0f, 256.0f, matrix); vgLoadMatrix(matrix); vgDrawImage(img); vguComputeWarpQuadToQuad(128.0f, 120.0f, 128.0f, 240.0f, 236.0f, 80.0f, 236.0f, 200.0f, 0.0f, 0.0f, 256.0f, 0.0f, 0.0f, 256.0f, 256.0f, 256.0f, matrix); vgLoadMatrix(matrix); vgDrawImage(img); saveDrawingSurface(f, "draw_vgu_warpquadtoquad.png", "Test VGU vguComputeWarpQuadToQuad function.", 0, 0, 256, 256); eglSwapBuffers(display, surface); vgDestroyImage(img);