void XCompcapMain::render(gs_effect_t *effect) { if (!p->win) return; PLock lock(&p->lock, true); effect = obs_get_base_effect(OBS_EFFECT_OPAQUE); if (!lock.isLocked() || !p->tex) return; gs_eparam_t *image = gs_effect_get_param_by_name(effect, "image"); gs_effect_set_texture(image, p->tex); while (gs_effect_loop(effect, "Draw")) { gs_draw_sprite(p->tex, 0, 0, 0); } if (p->cursor && p->gltex && p->show_cursor && !p->cursor_outside) { effect = obs_get_base_effect(OBS_EFFECT_DEFAULT); while (gs_effect_loop(effect, "Draw")) { xcursor_render(p->cursor); } } }
/** * Render the capture data */ static void xshm_video_render(void *vptr, gs_effect_t effect) { XSHM_DATA(vptr); if (!data->xshm) return; gs_eparam_t image = gs_effect_get_param_by_name(effect, "image"); gs_effect_set_texture(image, data->texture); gs_enable_blending(false); gs_draw_sprite(data->texture, 0, 0, 0); if (data->show_cursor) xcursor_render(data->cursor); gs_reset_blend_state(); }
void XCompcapMain::render(gs_effect_t *effect) { PLock lock(&p->lock, true); if (!lock.isLocked() || !p->tex) return; gs_eparam_t *image = gs_effect_get_param_by_name(effect, "image"); gs_effect_set_texture(image, p->tex); gs_enable_blending(false); gs_draw_sprite(p->tex, 0, 0, 0); if (p->cursor && p->gltex && p->show_cursor && !p->cursor_outside) xcursor_render(p->cursor); gs_reset_blend_state(); }