int textboxLoop(void *handle) { MAIN *m = handle; DARNIT_KEYS buttons = darnitButtonZero();; if (m->box.visible == 0) return 0; textboxAnimate(m); darnitRenderTileDraw(m->box.tile, m->system.ts_ui_elements, m->box.tiles); if (m->box.menu != NULL) darnitRenderTileDraw(m->box.menu_tile, m->system.ts_ui_elements, m->box.menu_tiles); darnitRenderBlendingEnable(m->darnit); darnitTextSurfaceDraw(m->box.text); if (m->box.menu != NULL) if ((m->box.selection = darnitMenuHandle(m->darnit, m->box.menu)) != -1) textboxClose(m); darnitRenderBlendingDisable(m->darnit); if (m->var.buttons.BUTTON_ACCEPT) { m->var.buttons.BUTTON_ACCEPT = 0; buttons.BUTTON_ACCEPT = 1; darnitButtonSet(m->darnit, buttons); textboxClose(m); } else if (m->var.buttons.BUTTON_CANCEL) { m->var.buttons.BUTTON_CANCEL = 0; buttons.BUTTON_CANCEL = 1; darnitButtonSet(m->darnit, buttons); textboxClose(m); } return 0; }
int main(int argc, char **argv) { DARNIT_PLATFORM platform; DARNIT_TILE *tile; DARNIT_TILESHEET *ts; unsigned int *pixbuf; int w, h, x, y;//, t; //int sinc_1, sinc_2, sinc_3, sinc_4; sinetable_init(); if (!darnitInit("Arne", "arne")) return -1; platform = darnitPlatformGet(); w = platform.screen_w / SCALE; h = platform.screen_h / SCALE; ts = darnitRenderTilesheetNew(1, 1, w, h, DARNIT_PFORMAT_RGB5A1); tile = darnitRenderTileAlloc(1); darnitRenderTileMove(tile, 0, ts, 0, 0); darnitRenderTileSetTilesheetCoord(tile, 0, ts, 0, 0, w, h); darnitRenderTileSizeSet(tile, 0, platform.screen_w, platform.screen_h); pixbuf = malloc(sizeof(unsigned int) * w * h); if (!ts || !pixbuf) darnitQuit(); memset(pixbuf, 0, w * h * sizeof(unsigned int)); darnitRenderTilesheetUpdate(ts, 0, 0, w, h, pixbuf); int mov1, mov2, c1, c2, c3; int t = 0; for (;;) { if(t&1) { for (y = 0; y < h; y++) for (x = 0; x < w; x++) { //int mov0=x+y+cosine((2*sine(t/2))/10)+sine(360*x/100); mov1=360*y/h+(t>>1); mov2=360*x/w; c1=sine(mov1+(t>>1))/2+((mov2>>1)-mov1-mov2+(t>>1)); //int c2=sine((c1+sine(mov0+t/10)+sine(y/40+t/2)+sine((x+y)/100))); c2=sine((c1+sine((y>>2)+(t>>1))+sine((x+y)))/10); c3=sine((c2+(cosine(mov1+mov2+c2/10)>>2)+cosine(mov2)+sine(x))/10); pixbuf[y * w + x] = (c1+c2+c3)/150+64;///0x10+128; } darnitRenderTilesheetUpdate(ts, 0, 0, w, h, pixbuf); } t++; darnitRenderBegin(); darnitRenderTileDraw(tile, ts, 1); darnitRenderEnd(); darnitLoop(); } return 0; }