int main(int argc, const char *argv[]) { FBDEV fbdev; strcpy(fbdev.dev, "/dev/fb0"); if (fb_init(&fbdev) == -1) { return -1; } ////test //int i, j; //for (i = 0; i < 30; i++) //{ //for (j = 0; j < 100; j++) //{ //draw_pixel(&fbdev, 200+i, 200+j, 0x00ff0000); //} //} ////end test //draw_pixel(&fbdev, 500, 500, 0x0000ff00); mouse_main(&fbdev); fb_destroy(&fbdev); //fun_test(); return 0; }
int main(int argc, char *argv[]) { fb_info_t fb; pthread_t tid[3]; int i; if(fb_init(NULL, &fb) == NULL) err_sys("fail to fb_init"); sem_init(&sem, 0, 1); pthread_rwlock_init(&rwlock, NULL); pthread_create(&tid[0], NULL, do_renew, NULL); pthread_create(&tid[1], NULL, do_dispjpg, (void *)&fb); pthread_create(&tid[2], NULL, do_mouse, (void *)&fb); pthread_join(tid[0], NULL); pthread_join(tid[1], NULL); pthread_join(tid[2], NULL); fb_destroy(&fb); pic_destroy(&pic_head); sem_destroy(&sem); pthread_rwlock_destroy(&rwlock); return 0; }
void emulator_destroy(emulator_t* emu) { fb_destroy(&emu->fb); pr_destroy(&emu->pr); mbox_destroy(&emu->mbox); gpio_destroy(&emu->gpio); cpu_destroy(&emu->cpu); vfp_destroy(&emu->vfp); memory_destroy(&emu->memory); }
/* Destroy gui */ void gui_destroy(struct gui_t *gui) { if (NULL == gui) return; #ifdef USE_ICONS enum icon_id_t i; for (i=ICON_LOGO; i<ICON_ARRAY_SIZE; i++) { fb_destroy_picture(gui->icons[i]); } free(gui->icons); #endif fb_destroy(gui->fb); free(gui); }
int main(void) { fb_info_t fb; int i; pthread_t tid[PROC_NUM]; if(fb_init(NULL, &fb) == NULL) err_sys("fail to init"); sem_init(&sem, 0, 0); for(i = 0; i < PROC_NUM; i++) pthread_create(&tid[i], NULL, handler[i], &fb); for(i = 0; i < PROC_NUM; i++) pthread_join(tid[i], NULL); sem_destroy(&sem); fb_destroy(&fb); return 0; }
static THOOKENTRY TTAG fb_dispatch(struct THook *hook, TAPTR obj, TTAG msg) { WINDISPLAY *mod = (WINDISPLAY *) hook->thk_Data; switch (msg) { case TMSG_DESTROY: fb_destroy(mod); break; case TMSG_OPENMODULE: return (TTAG) fb_modopen(mod, obj); case TMSG_CLOSEMODULE: fb_modclose(obj); break; case TMSG_INITTASK: return fb_initinstance(obj); case TMSG_RUNTASK: fb_runinstance(obj); break; } return 0; }
TMODENTRY TUINT tek_init_display_windows(TAPTR task, struct TModule *vis, TUINT16 version, TTAGITEM *tags) { WINDISPLAY *mod = (WINDISPLAY *) vis; if (mod == TNULL) { if (version == 0xffff) return sizeof(TAPTR) * FB_DISPLAY_NUMVECTORS; if (version <= FB_DISPLAY_VERSION) return sizeof(WINDISPLAY); return 0; } TDBPRINTF(TDB_TRACE,("Module init...\n")); for (;;) { struct TExecBase *TExecBase = TGetExecBase(mod); mod->fbd_ExecBase = TExecBase; mod->fbd_Lock = TCreateLock(TNULL); if (mod->fbd_Lock == TNULL) break; mod->fbd_Module.tmd_Version = FB_DISPLAY_VERSION; mod->fbd_Module.tmd_Revision = FB_DISPLAY_REVISION; mod->fbd_Module.tmd_Handle.thn_Hook.thk_Entry = fb_dispatch; mod->fbd_Module.tmd_Flags = TMODF_VECTORTABLE | TMODF_OPENCLOSE; TInitVectors(&mod->fbd_Module, fb_vectors, FB_DISPLAY_NUMVECTORS); return TTRUE; } fb_destroy(mod); return TFALSE; }