int MAMain() { int x=0, y=0, dx=1, dy=1; int scrW, scrH; int srcW, srcH; { int srcSize = maGetImageSize(SIMG); srcW = EXTENT_X(srcSize); srcH = EXTENT_Y(srcSize); } maCreateDrawableImage(TIMG, srcW,srcH); maSetDrawTarget(TIMG); maSetColor(0); //black maFillRect(0,0, srcW,srcH); maDrawImage(SIMG, 0,0); maSetColor(0xff0000); //red maLine(0,0, srcW,srcH); maLine(srcW,0, 0,srcH); maSetDrawTarget(HANDLE_SCREEN); { int scrSize = maGetScrSize(); scrW = EXTENT_X(scrSize); scrH = EXTENT_Y(scrSize); } while(1) { //int then = maGetMilliSecondCount(); maSetColor(0); //black maFillRect(0,0, scrW,scrH); maDrawImage(TIMG, x, y); if((dx > 0 && x + srcW > scrW) || (dx < 0 && x < 0)) { dx = -dx; } if((dy > 0 && y + srcH > scrH) || (dy < 0 && y < 0)) { dy = -dy; } x += dx; y += dy; maUpdateScreen(); /*{ int now = maGetMilliSecondCount(); int time_padding = 10 - (now - then); if(time_padding > 0) maSleep(time_padding); }*/ } }
void testGetImageData() { printf("testing maGetImageData\n"); const unsigned int NUMCOLORS = sizeof(sColors)/sizeof(int); unsigned int colors2[NUMCOLORS]; MAExtent e1 = maGetImageSize(ARGB_PNG); assert("maGetImageSize", e1 == EXTENT(NUMCOLORS,1)); MARect rect = {0, 0, NUMCOLORS, 1}; maGetImageData(ARGB_PNG, colors2, &rect, NUMCOLORS); assert("image: getData from PNG", (memcmp(sColors, colors2, sizeof(sColors)) == 0) ); maDrawImage(ARGB_PNG, 0, 0); maUpdateScreen(); //FREEZE; }
static void soft_drawImage(MAHandle image, int left, int top) { maDrawImage(image, sCurrentOffset.x + left, sCurrentOffset.y + top); }