int main(int argc, char** argv){ struct timespec t = {.tv_sec=0}; struct timespec lastTime = {.tv_sec = 0, .tv_nsec = 0}; struct timespec otherTime = {.tv_sec = 0, .tv_nsec = 0}; SDL_Event evnt; if(argc < 2){ puts("Please specify an ip."); return 5; } if(initView){ puts("no SDL2 window"); return 1; } initNetwork(argv[1], 1212); char test[10]; test[0] = 0; sendto(sockfd, test, 10, 0, (struct sockaddr*)&serverAddr, sizeof(serverAddr)); sendto(sockfd, test, 10, 0, (struct sockaddr*)&serverAddr, sizeof(serverAddr)); while(running){ netListen(); while(SDL_PollEvent(&evnt)){ if(evnt.type == SDL_KEYDOWN){ if(!keyAction(evnt.key.keysym.sym, 1)){ test[0] = 1; sendto(sockfd, test, 10, 0, (struct sockaddr*)&serverAddr, sizeof(serverAddr)); } }else if(evnt.type == SDL_KEYUP){ if(!keyAction(evnt.key.keysym.sym, 0)){ test[0] = 1; sendto(sockfd, test, 10, 0, (struct sockaddr*)&serverAddr, sizeof(serverAddr)); } }else if(evnt.type == SDL_QUIT){ running = 0; } } clock_gettime(CLOCK_MONOTONIC, &otherTime); int32_t sleep = (int32_t)(1000000000/50) - (otherTime.tv_nsec-lastTime.tv_nsec) - 1000000001*(otherTime.tv_sec-lastTime.tv_sec); if(sleep > 0){ t.tv_nsec = sleep; nanosleep(&t, NULL); } clock_gettime(CLOCK_MONOTONIC, &lastTime); } SDL_DestroyRenderer(render); SDL_DestroyWindow(window); SDL_Quit(); return 0; }
void ScrollPane::keyRepeatCB( KeyEvent &keyEvent ) { keyAction(keyEvent.getExtendedKey()); }
int main(int argc, char **argv) { XEvent event; done = False; rainbow = True; /* default to fullscreen */ GLWin.fs = True; createGLWindow("NeHe's Particle Engine", 1920, 1280, 24, GLWin.fs); initKeys(); /* wait for events*/ while (!done) { /* handle the events in the queue */ while (XPending(GLWin.dpy) > 0) { XNextEvent(GLWin.dpy, &event); switch (event.type) { case Expose: if (event.xexpose.count != 0) break; drawGLScene(); break; case ConfigureNotify: /* call resizeGLScene only if our window-size changed */ if ((event.xconfigure.width != GLWin.width) || (event.xconfigure.height != GLWin.height)) { GLWin.width = event.xconfigure.width; GLWin.height = event.xconfigure.height; printf("Resize event\n"); resizeGLScene(event.xconfigure.width, event.xconfigure.height); } break; /* exit in case of a mouse button press */ case ButtonPress: done = True; break; case KeyPress: keys[event.xkey.keycode] = True; break; case KeyRelease: keys[event.xkey.keycode] = False; break; case ClientMessage: if (*XGetAtomName(GLWin.dpy, event.xclient.message_type) == *"WM_PROTOCOLS") { printf("Exiting sanely...\n"); done = True; } break; default: break; } } keyAction(); drawGLScene(); } killGLWindow(); return 0; }