- vout_sys_t *sys = vout->p->p_sys;
- vout_display_t *vd = sys->vd;
-
- while (vout->p->i_changes & (VOUT_FULLSCREEN_CHANGE |
- VOUT_ASPECT_CHANGE |
- VOUT_ZOOM_CHANGE |
- VOUT_SCALE_CHANGE |
- VOUT_ON_TOP_CHANGE |
- VOUT_CROP_CHANGE)) {
- /* */
- if (vout->p->i_changes & VOUT_FULLSCREEN_CHANGE) {
- vout->p->b_fullscreen = !vout->p->b_fullscreen;
-
- var_SetBool(vout, "fullscreen", vout->p->b_fullscreen);
- vout_SetDisplayFullscreen(vd, vout->p->b_fullscreen);
- vout->p->i_changes &= ~VOUT_FULLSCREEN_CHANGE;
- }
- if (vout->p->i_changes & VOUT_ASPECT_CHANGE) {
- vout->fmt_out.i_sar_num = vout->fmt_in.i_sar_num;
- vout->fmt_out.i_sar_den = vout->fmt_in.i_sar_den;
-
- vout_SetDisplayAspect(vd, vout->fmt_in.i_sar_num, vout->fmt_in.i_sar_den);
-
- vout->p->i_changes &= ~VOUT_ASPECT_CHANGE;
- }
- if (vout->p->i_changes & VOUT_ZOOM_CHANGE) {
- const float zoom = var_GetFloat(vout, "scale");
-
- unsigned den = ZOOM_FP_FACTOR;
- unsigned num = den * zoom;
- if (num < (ZOOM_FP_FACTOR+9) / 10)
- num = (ZOOM_FP_FACTOR+9) / 10;
- else if (num > ZOOM_FP_FACTOR * 10)
- num = ZOOM_FP_FACTOR * 10;
-
- vout_SetDisplayZoom(vd, num, den);
-
- vout->p->i_changes &= ~VOUT_ZOOM_CHANGE;
- }
- if (vout->p->i_changes & VOUT_SCALE_CHANGE) {
- const bool is_display_filled = var_GetBool(vout, "autoscale");
-
- vout_SetDisplayFilled(vd, is_display_filled);
-
- vout->p->i_changes &= ~VOUT_SCALE_CHANGE;
- }
- if (vout->p->i_changes & VOUT_ON_TOP_CHANGE) {
- vout_SetWindowState(vd, vout->p->b_on_top
- ? VOUT_WINDOW_STATE_ABOVE
- : VOUT_WINDOW_STATE_NORMAL);