int main(void) { char *ini; dma_channel_initialize(DMA_CHANNEL_GIF,NULL,0); dma_channel_fast_waits(DMA_CHANNEL_GIF); fontx_load("rom0:KROM", &krom_u, SINGLE_BYTE, 2, 1, 1); fontx_load("rom0:KROM", &krom_k, DOUBLE_BYTE, 2, 1, 1); if((ini = fontstudio_load_ini("host:impress.ini")) != NULL) { fontstudio_parse_ini(&impress, ini, 512, 256); free(ini); draw_init_env(); init_texture(); run_demo(&packet); fontstudio_unload_ini(&impress); fontx_unload(&krom_u); fontx_unload(&krom_k); } else { printf("Error: cannot load ini file.\n"); } SleepThread(); return 0; }
int main(int argc, char **argv) { void* shmptr; /* Create a database with custom key and 2M size */ shmptr=wg_attach_database("9273", 2000000); /* Using default key and size: shmptr=wg_attach_database(NULL, 0); */ if(!shmptr) { fprintf(stderr, "Failed to attach to database.\n"); exit(1); } /* We have successfully attached, run the demo code */ run_demo(shmptr); /* Clean up. The shared memory area is released. This is * useful for the purposes of this demo, but might best be * avoided for more persistent databases. */ wg_delete_database("9273"); /* Database with default key: wg_delete_database(NULL); */ exit(0); }
int main() { int ok; allegro_init(); install_timer(); do { set_color_depth(8); if (set_gfx_mode (GFX_AUTODETECT, 640, 480, 0, 0) < 0) { allegro_message ("Error setting plain graphics mode:\n%s\n", allegro_error); return -1; } install_allegro_gl(); install_keyboard(); install_mouse(); ok = setup(); remove_keyboard(); remove_mouse(); if (ok) run_demo(); remove_allegro_gl(); } while (ok); return 0; }
void ArmDemoTask::goalReached(const GoalInfo& g) { if(g.checkNamePrefix("Arm Demo")) { run_demo(); getClient()->requestOnce("tourGoals"); } }
int main(int argc, char **argv) { try { return (run_demo()); } catch (ham::error &e) { std::cerr << "run_demo() failed with unexpected error " << e.get_errno() << " ('" << e.get_string() << "')" << std::endl; return (-1); } }
int main(int argc, char *argv[]) { /* Platform */ int width, height; const char *font_path; gui_size font_height; SDL_Window *win; SDL_GLContext glContext; NVGcontext *vg = NULL; unsigned int started; unsigned int dt; /* GUI */ struct gui_input in; struct gui_font font; struct demo_gui gui; if (argc < 3) { fprintf(stdout,"Missing TTF Font file/height argument: nanovg <path> <height>\n"); exit(EXIT_FAILURE); } font_path = argv[1]; font_height = (gui_size)MAX(0, atoi(argv[2])); /* SDL */ SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER|SDL_INIT_EVENTS); SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); win = SDL_CreateWindow("Demo", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, WINDOW_WIDTH, WINDOW_HEIGHT, SDL_WINDOW_OPENGL|SDL_WINDOW_SHOWN); glContext = SDL_GL_CreateContext(win); SDL_GetWindowSize(win, &width, &height); /* OpenGL */ glewExperimental = 1; if (glewInit() != GLEW_OK) die("[GLEW] failed setup\n"); glViewport(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT); /* nanovg */ vg = nvgCreateGLES2(NVG_ANTIALIAS|NVG_DEBUG); if (!vg) die("[NVG]: failed to init\n"); nvgCreateFont(vg, "fixed", font_path); nvgFontFace(vg, "fixed"); nvgFontSize(vg, font_height); nvgTextAlign(vg, NVG_ALIGN_LEFT|NVG_ALIGN_MIDDLE); /* GUI */ memset(&in, 0, sizeof in); memset(&gui, 0, sizeof gui); gui.memory = malloc(MAX_MEMORY); font.userdata.ptr = vg; nvgTextMetrics(vg, NULL, NULL, &font.height); font.width = font_get_width; init_demo(&gui, &font); while (gui.running) { /* Input */ SDL_Event evt; started = SDL_GetTicks(); gui_input_begin(&in); while (SDL_PollEvent(&evt)) { if (evt.type == SDL_WINDOWEVENT) resize(&evt); else if (evt.type == SDL_QUIT) goto cleanup; else if (evt.type == SDL_KEYUP) key(&in, &evt, gui_false); else if (evt.type == SDL_KEYDOWN) key(&in, &evt, gui_true); else if (evt.type == SDL_MOUSEBUTTONDOWN) btn(&in, &evt, gui_true); else if (evt.type == SDL_MOUSEBUTTONUP) btn(&in, &evt, gui_false); else if (evt.type == SDL_MOUSEMOTION) motion(&in, &evt); else if (evt.type == SDL_TEXTINPUT) text(&in, &evt); else if (evt.type == SDL_MOUSEWHEEL) gui_input_scroll(&in, evt.wheel.y); } gui_input_end(&in); /* GUI */ SDL_GetWindowSize(win, &width, &height); run_demo(&gui, &in); /* Draw */ glClearColor(0.4f, 0.4f, 0.4f, 1.0f); glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); draw(vg, &gui.stack, width, height); gui.ms = SDL_GetTicks() - started; SDL_GL_SwapWindow(win); /* Timing */ dt = SDL_GetTicks() - started; gui.ms = dt; if (dt < DTIME) SDL_Delay(DTIME - dt); } cleanup: /* Cleanup */ free(gui.memory); nvgDeleteGLES2(vg); SDL_GL_DeleteContext(glContext); SDL_DestroyWindow(win); SDL_Quit(); return 0; }
int main(int argc, char *argv[]) { /* Platform */ int width, height; const char *font_path; zr_size font_height; SDL_Window *win; SDL_GLContext glContext; NVGcontext *vg = NULL; /* GUI */ struct demo_gui gui; if (argc < 2) { fprintf(stdout,"Missing TTF Font file argument: gui <path>\n"); exit(EXIT_FAILURE); } font_path = argv[1]; font_height = 10; /* SDL */ SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER|SDL_INIT_EVENTS); SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); win = SDL_CreateWindow("Demo", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, WINDOW_WIDTH, WINDOW_HEIGHT, SDL_WINDOW_OPENGL|SDL_WINDOW_SHOWN); glContext = SDL_GL_CreateContext(win); SDL_GetWindowSize(win, &width, &height); /* OpenGL */ glewExperimental = 1; if (glewInit() != GLEW_OK) die("[GLEW] failed setup\n"); glViewport(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT); /* nanovg */ vg = nvgCreateGLES2(NVG_ANTIALIAS|NVG_DEBUG); if (!vg) die("[NVG]: failed to init\n"); nvgCreateFont(vg, "fixed", font_path); nvgFontFace(vg, "fixed"); nvgFontSize(vg, font_height); nvgTextAlign(vg, NVG_ALIGN_LEFT|NVG_ALIGN_MIDDLE); /* GUI */ memset(&gui, 0, sizeof gui); zr_command_queue_init_fixed(&gui.queue, calloc(MAX_MEMORY, 1), MAX_MEMORY); gui.font.userdata = zr_handle_ptr(vg); gui.font.width = font_get_width; nvgTextMetrics(vg, NULL, NULL, &gui.font.height); init_demo(&gui); while (gui.running) { /* Input */ SDL_Event evt; zr_input_begin(&gui.input); while (SDL_PollEvent(&evt)) { if (evt.type == SDL_WINDOWEVENT) resize(&evt); else if (evt.type == SDL_QUIT) goto cleanup; else if (evt.type == SDL_KEYUP) key(&gui.input, &evt, zr_false); else if (evt.type == SDL_KEYDOWN) key(&gui.input, &evt, zr_true); else if (evt.type == SDL_MOUSEBUTTONDOWN) btn(&gui.input, &evt, zr_true); else if (evt.type == SDL_MOUSEBUTTONUP) btn(&gui.input, &evt, zr_false); else if (evt.type == SDL_MOUSEMOTION) motion(&gui.input, &evt); else if (evt.type == SDL_TEXTINPUT) text(&gui.input, &evt); else if (evt.type == SDL_MOUSEWHEEL) zr_input_scroll(&gui.input,(float)evt.wheel.y); } zr_input_end(&gui.input); /* GUI */ SDL_GetWindowSize(win, &width, &height); run_demo(&gui); /* Draw */ glClearColor(0.4f, 0.4f, 0.4f, 1.0f); glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); draw(vg, &gui.queue, width, height); SDL_GL_SwapWindow(win); } cleanup: /* Cleanup */ free(zr_buffer_memory(&gui.queue.buffer)); nvgDeleteGLES2(vg); SDL_GL_DeleteContext(glContext); SDL_DestroyWindow(win); SDL_Quit(); return 0; }
INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prev, LPSTR lpCmdLine, int shown) { LARGE_INTEGER freq; long long start; long long dt; /* GUI */ struct gui_input in; struct gui_font font; struct demo_gui gui; /* Window */ QueryPerformanceFrequency(&freq); xw.wc.style = CS_HREDRAW|CS_VREDRAW; xw.wc.lpfnWndProc = wnd_proc; xw.wc.hInstance = hInstance; xw.wc.lpszClassName = "GUI"; RegisterClass(&xw.wc); xw.hWnd = CreateWindowEx( 0, xw.wc.lpszClassName, "Demo", WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, WINDOW_WIDTH, WINDOW_HEIGHT, 0, 0, hInstance, 0); xw.hdc = GetDC(xw.hWnd); GetClientRect(xw.hWnd, &xw.rect); xw.backbuffer = surface_new(xw.hdc, xw.rect.right, xw.rect.bottom); xw.font = font_new(xw.hdc, "Times New Roman", 14); xw.width = xw.rect.right; xw.height = xw.rect.bottom; /* GUI */ memset(&in, 0, sizeof in); memset(&gui, 0, sizeof gui); font.userdata.ptr = &xw; font.height = (gui_float)xw.font->height; font.width = font_get_text_width; gui.running = gui_true; gui.memory = malloc(MAX_MEMORY); init_demo(&gui, &font); while (gui.running && !quit) { /* Input */ MSG msg; start = timestamp(freq); gui_input_begin(&in); while (PeekMessage(&msg, xw.hWnd, 0, 0, PM_REMOVE)) { if (msg.message == WM_KEYDOWN) key(&in, &msg, gui_true); else if (msg.message == WM_KEYUP) key(&in, &msg, gui_false); else if (msg.message == WM_LBUTTONDOWN) btn(&in, &msg, gui_true); else if (msg.message == WM_LBUTTONUP) btn(&in, &msg, gui_false); else if (msg.message == WM_MOUSEMOVE) motion(&in, &msg); else if (msg.message == WM_CHAR) text(&in, &msg); TranslateMessage(&msg); DispatchMessage(&msg); } gui_input_end(&in); /* GUI */ run_demo(&gui, &in); /* Draw */ surface_begin(xw.backbuffer); surface_clear(xw.backbuffer, 100, 100, 100); draw(xw.backbuffer, &gui.stack); surface_end(xw.backbuffer, xw.hdc); /* Timing */ dt = timestamp(freq) - start; if (dt < DTIME) Sleep(DTIME - dt); } free(gui.memory); font_del(xw.font); surface_del(xw.backbuffer); ReleaseDC(xw.hWnd, xw.hdc); return 0; }
int main(int argc, char *argv[]) { long dt; long started; XWindow xw; struct demo_gui gui; /* Platform */ UNUSED(argc); UNUSED(argv); memset(&xw, 0, sizeof xw); xw.dpy = XOpenDisplay(NULL); xw.root = DefaultRootWindow(xw.dpy); xw.screen = XDefaultScreen(xw.dpy); xw.vis = XDefaultVisual(xw.dpy, xw.screen); xw.cmap = XCreateColormap(xw.dpy,xw.root,xw.vis,AllocNone); xw.swa.colormap = xw.cmap; xw.swa.event_mask = ExposureMask | KeyPressMask | KeyReleaseMask | ButtonPress | ButtonReleaseMask| ButtonMotionMask | Button1MotionMask | Button3MotionMask | Button4MotionMask | Button5MotionMask| PointerMotionMask; xw.win = XCreateWindow(xw.dpy, xw.root, 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT, 0, XDefaultDepth(xw.dpy, xw.screen), InputOutput, xw.vis, CWEventMask | CWColormap, &xw.swa); XStoreName(xw.dpy, xw.win, "X11"); XMapWindow(xw.dpy, xw.win); XGetWindowAttributes(xw.dpy, xw.win, &xw.attr); xw.width = (unsigned int)xw.attr.width; xw.height = (unsigned int)xw.attr.height; xw.surf = surface_create(xw.dpy, xw.screen, xw.win, xw.width, xw.height); xw.font = font_create(xw.dpy, "fixed"); /* GUI */ memset(&gui, 0, sizeof gui); zr_command_queue_init_fixed(&gui.queue, calloc(MAX_MEMORY, 1), MAX_MEMORY); gui.font.userdata = zr_handle_ptr(xw.font); gui.font.height = (zr_float)xw.font->height; gui.font.width = font_get_text_width; init_demo(&gui); while (gui.running) { /* Input */ XEvent evt; started = timestamp(); zr_input_begin(&gui.input); while (XCheckWindowEvent(xw.dpy, xw.win, xw.swa.event_mask, &evt)) { if (evt.type == KeyPress) key(&xw, &gui.input, &evt, zr_true); else if (evt.type == KeyRelease) key(&xw, &gui.input, &evt, zr_false); else if (evt.type == ButtonPress) btn(&gui.input, &evt, zr_true); else if (evt.type == ButtonRelease) btn(&gui.input, &evt, zr_false); else if (evt.type == MotionNotify) motion(&gui.input, &evt); else if (evt.type == Expose || evt.type == ConfigureNotify) resize(&xw, xw.surf); } zr_input_end(&gui.input); /* GUI */ run_demo(&gui); /* Draw */ XClearWindow(xw.dpy, xw.win); surface_clear(xw.surf, 0x00646464); draw(xw.surf, &gui.queue); surface_blit(xw.win, xw.surf, xw.width, xw.height); XFlush(xw.dpy); /* Timing */ dt = timestamp() - started; if (dt < DTIME) sleep_for(DTIME - dt); } free(zr_buffer_memory(&gui.queue.buffer)); font_del(xw.dpy, xw.font); surface_del(xw.surf); XUnmapWindow(xw.dpy, xw.win); XFreeColormap(xw.dpy, xw.cmap); XDestroyWindow(xw.dpy, xw.win); XCloseDisplay(xw.dpy); return 0; }