int test_packet(unsigned short cnt) { int i = 0; int ipc_status; message msg; int receive; int irq_set = mouse_subscribe(); unsigned long clean; counter = 0; interrupts = 0; while (i < cnt * 3) { receive = driver_receive(ANY, &msg, &ipc_status); if (receive != 0) { printf("driver_receive failed with: %d", receive); continue; } if (is_ipc_notify(ipc_status)) { switch (_ENDPOINT_P(msg.m_source)) { case HARDWARE: if (msg.NOTIFY_ARG & irq_set) { mouse_handler(); i++; } break; default: break; } } else { } } mouse_unsubscribe(); printf("\n\tpress ANY KEY to continue\n"); mouse_read(&clean); //Clean the buffer return 0; }
int main(int argc, char **argv) { // load in the mesh MT_Vector3 mesh_min,mesh_max; LOD_Decimation_InfoPtr LOD_info = NewVertsFromFile("beethoven.ply",mesh_min,mesh_max); // load the mesh data int load_result = LOD_LoadMesh(LOD_info); int preprocess_result = LOD_PreprocessMesh(LOD_info); if (!(load_result && preprocess_result)) { cout << " could not load mesh! \n"; return 0; } // make and install a mouse handler MEM_SmartPtr<MyGlutMouseHandler> mouse_handler(MyGlutMouseHandler::New()); GlutMouseManager::Instance()->InstallHandler(mouse_handler); // instantiate the drawing class MEM_SmartPtr<GlutMeshDrawer> drawer(GlutMeshDrawer::New()); GlutDrawManager::Instance()->InstallDrawer(drawer); drawer->SetLODInfo(LOD_info); drawer->SetMouseHandler(mouse_handler); // make and install a keyhandler MEM_SmartPtr<MyGlutKeyHandler> key_handler(MyGlutKeyHandler::New(LOD_info)); GlutKeyboardManager::Instance()->InstallHandler(key_handler); LOD_GhostTestApp LOD_app; LOD_app.InitApp(); init(mesh_min,mesh_max); LOD_app.Run(); return 0; /* ANSI C requires main to return int. */ }
/* connected to the "leave-notify-event" of the pane, generates an extra mouse event to make sure the cursor can not escape the wraparound area. needed because the area handled by mouse grab includes the menu and statusbar. */ static gboolean mouse_handler_wrap(GtkWidget *w, GdkEventCrossing *e, gpointer p) { if (_mouse_enabled) { GdkEventMotion mevent; DBG(("mouse_handler_wrap")); mevent.x = e->x; mevent.y = e->y; mevent.type = GDK_MOTION_NOTIFY; mouse_warped = 0; mouse_warpx = 0; mouse_warpy = 0; mouse_handler(w, (GdkEvent*)&mevent, p); } return 0; }
int test_async(unsigned short idle_time) { int ipc_status; message msg; int request; unsigned long irq_set1, irq_set2; time = 0; counter = 0; irq_set2 = timer_subscribe(); irq_set1 = subscribe_mouse(); while(time < idle_time * 60) { request = driver_receive(ANY, &msg, &ipc_status); if (request != 0 ) { printf("driver_receive failed with: %d", request); continue; } if (is_ipc_notify(ipc_status)) { switch (_ENDPOINT_P(msg.m_source)) { case HARDWARE: if (msg.NOTIFY_ARG & irq_set1) { mouse_handler(); } else if(msg.NOTIFY_ARG & irq_set2){ time++; } break; default: break; } } } mouse_write_byte(DISABLE_DATA_PACKETS); unsubscribe_mouse(); timer_unsubscribe(); printf("\nLimit time exceed!\n"); return 0; }
int test_async(unsigned short idle_time) { int ipc_status; message msg; int time = 0; int receive; unsigned long clean; int irq_set_mouse = mouse_subscribe(); int irq_set_timer = timer_subscribe_int(); counter = 0; interrupts = 0; while (time < idle_time * 60) { receive = driver_receive(ANY, &msg, &ipc_status); if (receive != 0) { printf("driver_receive failed with: %d", receive); continue; } if (is_ipc_notify(ipc_status)) { switch (_ENDPOINT_P(msg.m_source)) { case HARDWARE: if (msg.NOTIFY_ARG & irq_set_mouse) { mouse_handler(); time = 0; } if (msg.NOTIFY_ARG & irq_set_timer) { time++; } break; default: break; } } else { } } mouse_unsubscribe(); timer_unsubscribe_int(); printf("\n\tpress ANY KEY to continue\n"); mouse_read(&clean); return 0; }
int test_packet(unsigned short cnt){ int j = 0; int ipc_status; message msg; int request; unsigned long irq_set; counter = 0; irq_set = subscribe_mouse(); while(j < 3 * cnt) { request = driver_receive(ANY, &msg, &ipc_status); if (request != 0 ) { printf("driver_receive failed with: %d", request); continue; } if (is_ipc_notify(ipc_status)) { switch (_ENDPOINT_P(msg.m_source)) { case HARDWARE: if (msg.NOTIFY_ARG & irq_set) { mouse_handler(); j++; } break; default: break; } } } mouse_write_byte(DISABLE_DATA_PACKETS); unsubscribe_mouse(); printf("%d", cnt); printf(" packets printed\n"); return 0; }
int main(void) { set_up_planets(); /* Create a pixmap font from a TrueType file. */ font = ftglCreatePixmapFont("FreeSans.ttf"); SDL_Init(SDL_INIT_VIDEO); screen = SDL_SetVideoMode(screen_x, screen_y, 0, SDL_OPENGL|SDL_DOUBLEBUF|SDL_RESIZABLE); SDL_WM_SetCaption("Simple Window", "Simple Window"); atexit(SDL_Quit); for(;;) { SDL_Event event; while(SDL_PollEvent(&event)) { if (event.type == SDL_QUIT) { return 0; } if (event.type == SDL_VIDEORESIZE) { screen = SDL_SetVideoMode(event.resize.w,event.resize.h, 0, SDL_OPENGL|SDL_DOUBLEBUF|SDL_RESIZABLE); glViewport(0,0,event.resize.w,event.resize.h); screen_x=event.resize.w; screen_y=event.resize.h; } if (event.type == SDL_MOUSEBUTTONDOWN) { mouse_handler( event.button.x, event.button.y ); } if (event.type == SDL_KEYDOWN) { keyboard_handler( event.key.keysym.sym ); } } draw(); } return 0; }
void Java_tuchsen_descent_DescentView_mouseHandler(JNIEnv *env, jclass thiz, jshort x, jshort y, jboolean down) { mouse_handler(x, y, down); }
int main(int argc, char **argv) { const int seg_num = 5; const MT_Scalar seg_length = 15; const float seg_startA[3] = {0,0,0}; const float seg_startB[3] = {0,-20,0}; // create some segments to solve with // First chain ////////////// IK_Segment_ExternPtr const segmentsA = new IK_Segment_Extern[seg_num]; IK_Segment_ExternPtr const segmentsB = new IK_Segment_Extern[seg_num]; IK_Segment_ExternPtr seg_it = segmentsA; IK_Segment_ExternPtr seg_itB = segmentsB; { // MT_Quaternion qmat(MT_Vector3(0,0,1),-3.141/2); MT_Quaternion qmat(MT_Vector3(0,0,1),0); MT_Matrix3x3 mat(qmat); seg_it->seg_start[0] = seg_startA[0]; seg_it->seg_start[1] = seg_startA[1]; seg_it->seg_start[2] = seg_startA[2]; float temp[12]; mat.getValue(temp); seg_it->basis[0] = temp[0]; seg_it->basis[1] = temp[1]; seg_it->basis[2] = temp[2]; seg_it->basis[3] = temp[4]; seg_it->basis[4] = temp[5]; seg_it->basis[5] = temp[6]; seg_it->basis[6] = temp[8]; seg_it->basis[7] = temp[9]; seg_it->basis[8] = temp[10]; seg_it->length = seg_length; MT_Quaternion q; q.setEuler(0,0,0); MT_Matrix3x3 qrot(q); seg_it->basis_change[0] = 1; seg_it->basis_change[1] = 0; seg_it->basis_change[2] = 0; seg_it->basis_change[3] = 0; seg_it->basis_change[4] = 1; seg_it->basis_change[5] = 0; seg_it->basis_change[6] = 0; seg_it->basis_change[7] = 0; seg_it->basis_change[8] = 1; seg_it ++; seg_itB->seg_start[0] = seg_startA[0]; seg_itB->seg_start[1] = seg_startA[1]; seg_itB->seg_start[2] = seg_startA[2]; seg_itB->basis[0] = temp[0]; seg_itB->basis[1] = temp[1]; seg_itB->basis[2] = temp[2]; seg_itB->basis[3] = temp[4]; seg_itB->basis[4] = temp[5]; seg_itB->basis[5] = temp[6]; seg_itB->basis[6] = temp[8]; seg_itB->basis[7] = temp[9]; seg_itB->basis[8] = temp[10]; seg_itB->length = seg_length; seg_itB->basis_change[0] = 1; seg_itB->basis_change[1] = 0; seg_itB->basis_change[2] = 0; seg_itB->basis_change[3] = 0; seg_itB->basis_change[4] = 1; seg_itB->basis_change[5] = 0; seg_itB->basis_change[6] = 0; seg_itB->basis_change[7] = 0; seg_itB->basis_change[8] = 1; seg_itB ++; } int i; for (i=1; i < seg_num; ++i, ++seg_it,++seg_itB) { MT_Quaternion qmat(MT_Vector3(0,0,1),0.3); MT_Matrix3x3 mat(qmat); seg_it->seg_start[0] = 0; seg_it->seg_start[1] = 0; seg_it->seg_start[2] = 0; float temp[12]; mat.getValue(temp); seg_it->basis[0] = temp[0]; seg_it->basis[1] = temp[1]; seg_it->basis[2] = temp[2]; seg_it->basis[3] = temp[4]; seg_it->basis[4] = temp[5]; seg_it->basis[5] = temp[6]; seg_it->basis[6] = temp[8]; seg_it->basis[7] = temp[9]; seg_it->basis[8] = temp[10]; seg_it->length = seg_length; MT_Quaternion q; q.setEuler(0,0,0); MT_Matrix3x3 qrot(q); seg_it->basis_change[0] = 1; seg_it->basis_change[1] = 0; seg_it->basis_change[2] = 0; seg_it->basis_change[3] = 0; seg_it->basis_change[4] = 1; seg_it->basis_change[5] = 0; seg_it->basis_change[6] = 0; seg_it->basis_change[7] = 0; seg_it->basis_change[8] = 1; /////////////////////////////// seg_itB->seg_start[0] = 0; seg_itB->seg_start[1] = 0; seg_itB->seg_start[2] = 0; seg_itB->basis[0] = temp[0]; seg_itB->basis[1] = temp[1]; seg_itB->basis[2] = temp[2]; seg_itB->basis[3] = temp[4]; seg_itB->basis[4] = temp[5]; seg_itB->basis[5] = temp[6]; seg_itB->basis[6] = temp[8]; seg_itB->basis[7] = temp[9]; seg_itB->basis[8] = temp[10]; seg_itB->length = seg_length; seg_itB->basis_change[0] = 1; seg_itB->basis_change[1] = 0; seg_itB->basis_change[2] = 0; seg_itB->basis_change[3] = 0; seg_itB->basis_change[4] = 1; seg_itB->basis_change[5] = 0; seg_itB->basis_change[6] = 0; seg_itB->basis_change[7] = 0; seg_itB->basis_change[8] = 1; } // create the chains const int num_chains = 2; IK_Chain_ExternPtr chains[num_chains]; chains[0] = IK_CreateChain(); chains[1] = IK_CreateChain(); // load segments into chain IK_LoadChain(chains[0],segmentsA,seg_num); IK_LoadChain(chains[1],segmentsB,seg_num); // make and install a mouse handler MEM_SmartPtr<MyGlutMouseHandler> mouse_handler (MyGlutMouseHandler::New()); GlutMouseManager::Instance()->InstallHandler(mouse_handler); mouse_handler->SetChain(chains,num_chains); // make and install a keyhandler MEM_SmartPtr<MyGlutKeyHandler> key_handler (MyGlutKeyHandler::New()); GlutKeyboardManager::Instance()->InstallHandler(key_handler); // instantiate the drawing class MEM_SmartPtr<ChainDrawer> drawer (ChainDrawer::New()); GlutDrawManager::Instance()->InstallDrawer(drawer); drawer->SetMouseHandler(mouse_handler); drawer->SetChain(chains,num_chains); drawer->SetKeyHandler(key_handler); glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); glutCreateWindow("ik"); glutDisplayFunc(GlutDrawManager::Draw); glutMouseFunc(GlutMouseManager::Mouse); glutMotionFunc(GlutMouseManager::Motion); glutKeyboardFunc(GlutKeyboardManager::HandleKeyboard); init(MT_Vector3(-50,-50,-50),MT_Vector3(50,50,50)); glutMainLoop(); return 0; /* ANSI C requires main to return int. */ }
void showRenderBuffer() { int i; EGLContext eglContext; EGLDisplay eglDisplay; EGLSurface eglSurface; grs_font *font; JNIEnv *env; jclass clazz; jmethodID method; if (Want_pause) { // Save this in case we need to destroy it later eglContext = eglGetCurrentContext(); eglDisplay = eglGetCurrentDisplay(); eglSurface = eglGetCurrentSurface(EGL_DRAW); // Close digi so another application can use the OpenSL ES objects digi_close_digi(); (*jvm)->GetEnv(jvm, (void **) &env, JNI_VERSION_1_6); clazz = (*env)->FindClass(env, "tuchsen/descent/DescentView"); // Pause this thread method = (*env)->GetMethodID(env, clazz, "pauseRenderThread", "()V"); (*env)->CallVoidMethod(env, Descent_view, method); digi_init_digi(); if (Surface_was_destroyed) { // Purge all texture assets, since the EGL context will be blown away for (i = 0; i < MAX_FONTS; ++i) { font = Gamefonts[i]; glDeleteTextures(font->ft_maxchar - font->ft_minchar, font->ft_ogles_texes); memset(font->ft_ogles_texes, 0, (font->ft_maxchar - font->ft_minchar) * sizeof(GLuint)); } for (i = 0; i < MAX_BITMAP_FILES; ++i) { glDeleteTextures(1, &GameBitmaps[i].bm_ogles_tex_id); GameBitmaps[i].bm_ogles_tex_id = 0; } texmerge_close(); texmerge_init(50); glDeleteTextures(1, &nm_background.bm_ogles_tex_id); nm_background.bm_ogles_tex_id = 0; // Blow away EGL surface and context eglMakeCurrent(eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); eglDestroySurface(eglDisplay, eglSurface); eglDestroyContext(eglDisplay, eglContext); eglTerminate(eglDisplay); // Reset EGL context method = (*env)->GetMethodID(env, clazz, "initEgl", "()V"); (*env)->CallVoidMethod(env, Descent_view, method); (*env)->DeleteLocalRef(env, clazz); eglSurfaceAttrib(eglGetCurrentDisplay(), eglGetCurrentSurface(EGL_DRAW), EGL_SWAP_BEHAVIOR, EGL_BUFFER_PRESERVED); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Hack to show stuff like menus if (Game_mode != GM_NORMAL || In_screen) { mouse_handler(-1, -1, true); mouse_handler(-1, -1, false); } Surface_was_destroyed = false; } Want_pause = false; } else { draw_buttons(); eglSwapBuffers(eglGetCurrentDisplay(), eglGetCurrentSurface(EGL_READ)); can_save_screen = !can_save_screen; } }