virtual void on_frame_ready(astra::StreamReader& reader, astra::Frame& frame) override { process_depth(frame); process_hand_frame(frame); check_fps(); }
virtual void on_frame_ready(astra::StreamReader& reader, astra::Frame& frame) override { const astra::DepthFrame depthFrame = frame.get<astra::DepthFrame>(); if (depthFrame.is_valid()) { print_depth(depthFrame, reader.stream<astra::DepthStream>().coordinateMapper()); check_fps(); } }
ENTRYPOINT void draw_slideshow (ModeInfo *mi) { slideshow_state *ss = &sss[MI_SCREEN(mi)]; int i; if (!ss->glx_context) return; glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(ss->glx_context)); if (ss->awaiting_first_image_p) { image *img = ss->images[0]; if (!img) abort(); if (!img->loaded_p) return; ss->awaiting_first_image_p = False; ss->dawn_of_time = double_time(); /* start the very first sprite fading in */ new_sprite (mi); } ss->now = double_time(); /* Each sprite has three states: fading in, full, fading out. The in/out states overlap like this: iiiiiiFFFFFFFFFFFFoooooo . . . . . . . . . . . . . . . . . . . . . . . . . . iiiiiiFFFFFFFFFFFFoooooo . . . . . . . . . . . . . . . . . . . . . . . . . . iiiiiiFFFFFFFFFFFFooooo So as soon as a sprite goes into the "out" state, we create a new sprite (in the "in" state.) */ if (ss->nsprites > 2) abort(); /* If a sprite is just entering the fade-out state, then add a new sprite in the fade-in state. */ for (i = 0; i < ss->nsprites; i++) { sprite *sp = ss->sprites[i]; if (sp->state != sp->prev_state && sp->state == (fade_seconds == 0 ? DEAD : OUT)) new_sprite (mi); } tick_sprites (mi); /* Now garbage collect the dead sprites. */ for (i = 0; i < ss->nsprites; i++) { sprite *sp = ss->sprites[i]; if (sp->state == DEAD) { destroy_sprite (mi, sp); i--; } } /* We can only ever end up with no sprites at all if the machine is being really slow and we hopped states directly from FULL to DEAD without passing OUT... */ if (ss->nsprites == 0) new_sprite (mi); if (!ss->redisplay_needed_p) return; if (debug_p && ss->now - ss->prev_frame_time > 1) fprintf (stderr, "%s: static screen for %.1f secs\n", blurb(), ss->now - ss->prev_frame_time); draw_sprites (mi); if (mi->fps_p) do_fps (mi); glFinish(); glXSwapBuffers (MI_DISPLAY (mi), MI_WINDOW(mi)); ss->prev_frame_time = ss->now; ss->redisplay_needed_p = False; check_fps (mi); }