void processNormalKeys(unsigned char key, int x, int y){ if(key ==27){ //'esc' to exit exit(0); } else if(key == 104){ //'h' to show handmap or palmpoint switchShowHand(); } else if(key == 100){ //'d' to show front buffer or back bufferr switch_buffer(); if(get_buffer()) printf("switch buffer to front\n"); else printf("switch buffer to back\n"); } else if(key == 111) {//'o' to train value = open hand //////////////set_print_training(2); // grab set_print_training(true); } else if(key == 112) {// 'p' to train value = close hand ///////////////set_print_training(1); // no grab set_print_training(false); } else if(key == 49){ //'1' for rotate X commitScene(-2, 0, 0); recalNormal(); } else if(key == 50){ //'2' for rotate y commitScene(2, 0, 0); recalNormal(); } else if(key == 51){ //'3' for line effect commitScene(0, -2, 0); recalNormal(); } else if(key == 52){ //'4' for line effect commitScene(0, 2, 0); recalNormal(); } else if(key == 53){ //'5' for line effect switchLine(); } else if(key == 54){ preview = !preview; } else printf("key: %d\n", key); }
int l_switch_buffer(lua_State *L) { int id = lua_tonumber(L, 1); int result = switch_buffer(id); lua_pushnumber(L, result); return 1; }
int main(int argc, char **argv) { int retour; t_data data; if ( !(argc == 2 || argc == 3)) return (-1); if (argc == 3) { retour = read_pal(&data, argv[2]); } else { data.palette = (t_palette *) malloc(sizeof(t_palette)); data.palette[0].start_color = int_to_color4(0x00FFFFFF); data.palette[0].end_color = int_to_color4(0x00FFFFFF); data.palette[0].start_range = 0; data.palette[0].end_range = 1; } if ((data.mlx_ptr = mlx_init()) == NULL) { printf("I can't open the display\n"); return (EXIT_FAILURE); } data.screen_width = 1024; data.screen_height = 768; data.canvas_width = data.screen_width - 100 - 1; data.canvas_height = data.screen_height - 2; data.back_buffer = 1; data.front_buffer = 0; data.anime = 1; if ((data.mlx_win = mlx_new_window(data.mlx_ptr, data.screen_width, data.screen_height, "MonCube")) == NULL) return (EXIT_FAILURE); retour = mlx_key_hook(data.mlx_win, my_key_on_release_funct, &data); retour = mlx_loop_hook(data.mlx_ptr, my_loop_funct, &data); retour = mlx_mouse_hook(data.mlx_win,my_mouse_on_click_funct, &data); retour = mlx_expose_hook(data.mlx_win, my_expose_funct, &data); retour = mlx_hook(data.mlx_win, KeyPress, KeyPressMask, my_key_on_maintain_funct, &data); retour = mlx_hook(data.mlx_win, MotionNotify, PointerMotionMask, my_mouse_on_move_funct, &data); retour = mlx_hook(data.mlx_win, ButtonRelease, ButtonReleaseMask, my_mouse_on_release_funct, &data); print_menu(&data); data.put_in_canvas = false; fdf_bline(&data, data.canvas_width + 1, 0, data.canvas_width + 1, data.screen_height - 1, 0x00CFCFCF); fdf_bline(&data,data.screen_width - 1, 0, data.screen_width - 1, data.screen_height - 1, 0x00CFCFCF); fdf_bline(&data, 0, 0, 0, data.screen_height - 1, 0x00CFCFCF); fdf_bline(&data, 0, data.screen_height - 1, data.screen_width - 1, data.screen_height - 1, 0x00CFCFCF); // draw_square(&data, data.canvas_width + 2, 0, data.screen_width - 2, // data.screen_height - 2, 0x00CFCFCF); data.put_in_canvas = true; data.img[data.back_buffer] = mlx_new_image(data.mlx_ptr, data.canvas_width , data.canvas_height); data.canvas[data.back_buffer] = (int *) mlx_get_data_addr( data.img[data.back_buffer], &data.bpp, &data.sizeline, &data.endian); data.img[data.front_buffer] = mlx_new_image(data.mlx_ptr, data.canvas_width , data.canvas_height); data.canvas[data.front_buffer] = (int *) mlx_get_data_addr( data.img[data.front_buffer], &data.bpp, &data.sizeline, &data.endian); start_fdf(&data, read_file(argv[1])); // print_my_cube(&data); switch_buffer(&data); mlx_put_image_to_window(data.mlx_ptr, data.mlx_win, data.img[data.front_buffer], 1, 1); if (retour == 1) return 0; retour = mlx_do_key_autorepeaton(data.mlx_ptr); mlx_loop(data.mlx_ptr); return (EXIT_SUCCESS); }