Пример #1
0
void Display::render()
{
	render_child(thumbs);
	render_child(grid);
	render_child(info);
	render_child(subtags);
	render_child(cli);

	sdl->reset_viewport();
}
Пример #2
0
void
draw_child(void)
{
  if (child_first)
    createchild();
  child_speed = old_child_speed;
  child_speed = reduce_vsync(child_speed);
  child_time += child_speed;
  render_child();
  drawchild();
}
Пример #3
0
void render_children(component *c) {
	render_child(c->children);
}
Пример #4
0
void render_child(component *c) {
	if (!c) return;
	render_child(c->next);
	render_gui(c);
	render_children(c);
}
Пример #5
0
void obs_transition_video_render(obs_source_t *transition,
                                 obs_transition_video_render_callback_t callback)
{
    struct transition_state state;
    bool locked = false;
    bool stopped = false;
    bool video_stopped = false;
    float t;

    if (!transition_valid(transition, "obs_transition_video_render"))
        return;

    t = get_video_time(transition);

    lock_transition(transition);

    if (t >= 1.0f && transition->transitioning_video) {
        transition->transitioning_video = false;
        video_stopped = true;

        if (!transition->transitioning_audio) {
            obs_transition_stop(transition);
            stopped = true;
        }
    }
    copy_transition_state(transition, &state);

    unlock_transition(transition);

    if (state.transitioning_video)
        locked = trylock_textures(transition) == 0;

    if (state.transitioning_video && locked && callback) {
        gs_texture_t *tex[2];

        for (size_t i = 0; i < 2; i++) {
            if (state.s[i]) {
                render_child(transition, state.s[i], i);
                tex[i] = get_texture(transition, i);
                if (!tex[i])
                    tex[i] = obs->video.transparent_texture;
            } else {
                tex[i] = obs->video.transparent_texture;
            }
        }

        callback(transition->context.data, tex[0], tex[1], t,
                 transition->transition_actual_cx,
                 transition->transition_actual_cy);

    } else if (state.transitioning_audio) {
        if (state.s[1])
            obs_source_video_render(state.s[1]);

    } else {
        if (state.s[0])
            obs_source_video_render(state.s[0]);
    }

    if (locked)
        unlock_textures(transition);

    obs_source_release(state.s[0]);
    obs_source_release(state.s[1]);

    if (video_stopped)
        obs_source_dosignal(transition, "source_transition_video_stop",
                            "transition_video_stop");
    if (stopped)
        obs_source_dosignal(transition, "source_transition_stop",
                            "transition_stop");
}