ืจื™ืœื™ืก ืคื•ืŸ Weston Composite Server 7.0

ืืจื•ื™ืก ืกื˜ืึทื‘ื™ืœ ืžืขืœื“ื•ื ื’ ืคื•ืŸ ืงืึธืžืคึผืึธืกื™ื˜ืข ืกืขืจื•ื•ืขืจ ื•ื•ืขืกื˜ืึธืŸ 7.0, ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ื˜ืขืงื ืึทืœืึทื“ื–ืฉื™ื– ื•ื•ืึธืก ื‘ื™ื™ืฉื˜ื™ื™ืขืจืŸ ืฆื• ื“ื™ ื™ืžืขืจื“ื–ืฉืึทื ืก ืคื•ืŸ ืคื•ืœ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ืขื ืคึผืจืึธื˜ืึธืงืึธืœ Wayland ืื™ืŸ ื”ืฉื›ืœื”, GNOME, KDE ืื•ืŸ ืื ื“ืขืจืข ื‘ืึทื ื™ืฆืขืจ ื™ื ื•ื•ื™ื™ืจืึทื ืžืึทื ืฅ. Weston ืก ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ื™ื™ืžื– ืฆื• ืฆื•ืฉื˜ืขืœืŸ ืึท ื”ื•ื™ืš-ืงื•ื•ืึทืœื™ื˜ืขื˜ ืงืึธื“ ื‘ืึทื–ืข ืื•ืŸ ืืจื‘ืขื˜ืŸ ื‘ื™ื™ืฉืคื™ืœืŸ ืคึฟืึทืจ ื ื™ืฆืŸ Wayland ืื™ืŸ ื“ืขืกืงื˜ืึทืคึผ ื™ื ื•ื•ื™ื™ืจืึทื ืžืึทื ืฅ ืื•ืŸ ืขืžื‘ืขื“ื™ื“ ืกืึทืœื•ืฉืึทื ื–, ืึทื–ืึท ื•ื•ื™ ืคึผืœืึทื˜ืคืึธืจืžืก ืคึฟืึทืจ ืึธื˜ืึทืžืึธื•ื˜ื™ื•ื• ื™ื ืคืึธื˜ืึทื™ื ืžืขื ื˜ ืกื™ืกื˜ืขืžืขืŸ, ืกืžืึทืจื˜ืคืึธื ืขืก, ื˜ื•ื•ืก ืื•ืŸ ืื ื“ืขืจืข ืงืึทื ืกื•ืžืขืจ ื“ืขื•ื•ื™ืกืขืก.

Weston ืก ื‘ืึทื˜ื™ื™ื˜ื™ืง ื•ื•ืขืจืกื™ืข ื ื•ืžืขืจ ืขื ื“ืขืจื•ื ื’ ืื™ื– ืจืขื›ื˜ ืฆื• ABI ืขื ื“ืขืจื•ื ื’ืขืŸ ื•ื•ืึธืก ื‘ืจืขื›ืŸ ืงืึทืžืคึผืึทื˜ืึทื‘ื™ืœืึทื˜ื™. ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ื ื™ื™ึท ืฆื•ื•ื™ื™ึทื’ ื•ื•ืขืกื˜ืึธืŸ:

  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื˜ืขื›ื ืึธืœืึธื’ื™ืข ืฆื• ื‘ืึทืฉื™ืฆืŸ ืงืขื’ืŸ ื•ืžืœืขื’ืึทืœ ืงืึทืคึผื™ื™ื ื’ ืื™ื ื”ืึทืœื˜ ื”ื“ืงืคึผ, ื•ื•ืึธืก ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ืขื ืงืจื™ืคึผื˜ ื•ื•ื™ื“ืขื ืกื™ื’ื ืึทืœื– ื˜ืจืึทื ืกืžื™ื˜ื˜ืขื“ ื“ื•ืจืš DVI, DisplayPort, HDMI, GVIF ืึธื“ืขืจ UDI ื™ื ื˜ืขืจืคื™ื™ืกื™ื–. libweston ื™ืžืคึผืœืึทืžืึทื ืฅ ืึท ืคืึธืŸ ืคึฟืึทืจ ื“ื™ Weston_output, weston_surface ืื•ืŸ weston_head ืจื•ืคื˜ ืฆื• ื’ืขื‘ืŸ ืฉื•ืฅ ืคื•ืŸ ื˜ืจืึทื ืกืžื™ื˜ื˜ืขื“ ืื™ื ื”ืึทืœื˜. ืฆื•ื’ืขื’ืขื‘ืŸ ืึท ื‘ื™ื™ึทืฉืคึผื™ืœ ืงืœื™ืขื ื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคึฟืึทืจ ื•ื•ื™ื™ึทื–ื ื“ื™ืง ืคึผืจืึธื˜ืขืงื˜ืขื“ ืื™ื ื”ืึทืœื˜;
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืคึผืœื•ื’ื™ืŸ ืคึฟืึทืจ ืžื™ื“ื™ืึท ืกืขืจื•ื•ืขืจ ืคึผื™ื™ืคึผื•ื•ื™ืจืข, ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืฆื• ืคืึทืจื‘ื™ื™ึทื˜ืŸ PulseAudio ืื•ืŸ, ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ืึทื•ื“ื™ืึธ, ืฉื˜ื™ืฆื˜ ืคึผืจืึทืกืขืกื™ื ื’ ื•ื•ื™ื“ืขื ืกื˜ืจื™ืžื–. ืฉื˜ืขืง ืืจื™ื™ืŸ ืงืขื ืขืŸ ื•ื•ืขืจืŸ ื’ืขื ื™ืฆื˜ ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ืจืขื–ื•ืœื˜ืึทื˜ ืฆื• ืึท ื•ื•ื™ื™ึทื˜ ื“ืขืกืงื˜ืึทืคึผ ืขื ืœืขืš ืฆื• ื“ื™ ืคืจื™ืขืจ ื‘ื ื™ืžืฆื ืจืขื–ื•ืœื˜ืึทื˜ ืคึผืœื•ื’ื™ืŸ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ GStreamer. ืื•ื™ืฃ ื“ื™ ืจื™ืกื™ื•ื•ื™ื ื’ ื–ื™ื™ึทื˜, ืงื™ื™ืŸ ืงืœื™ืขื ื˜ ืžื™ื˜ ืคึผื™ื™ื•ื•ื™ืจืข ืฉื˜ื™ืฆืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืคึฟืึทืจ ื•ื•ื™ื™ึทื–, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ GStreamer (ืœืžืฉืœ, "gst-launch-1.0 pipewiresrc ! video/x-raw,format=BGRx ! ...");
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ EGL ืคืึทืจืœืขื ื’ืขืจื•ื ื’ ืฆื• gl-renderer EGL_KHR_partial_update ืฆื• ืกืึทืœืขืงื˜ื™ื•ื•ืœื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ืกืขืจืคืึทืกื™ื–, โ€‹โ€‹โ€‹โ€‹ืกืงื™ืคึผื™ื ื’ ื’ืขื‘ื™ื˜ืŸ ื•ื•ืึธืก ื”ืึธื‘ืŸ ื ื™ืฉื˜ ื’ืขื‘ื™ื˜ืŸ;
  • ืฆื•ื’ืขื’ืขื‘ืŸ ื ื™ื™ึท Weston_debug ืคืจื™ื™ืžื•ื•ืขืจืง ืคึฟืึทืจ ื“ื™ื‘ืึทื’ื™ื ื’ ืื•ืŸ ื’ืขืฉืขืขื ื™ืฉ ืœืึธื’ื™ื ื’ (weston_log_context);
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื ื™ื™ึท ื›ืขื“ืขืจ ื˜ืขืงืขืก libweston-internal.h ืื•ืŸ backend.h. ื“ืขืจ ืขืจืฉื˜ืขืจ ื›ึผื•ืœืœ ืคืึทื ื’ืงืฉืึทื ื– ืคึฟืึทืจ ืืจื‘ืขื˜ืŸ ืžื™ื˜
    'weston_compositor', 'weston_plane', 'weston_seat', 'weston_surface', 'weston_spring', 'weston_view', ืื•ืŸ ืื™ืŸ ื“ื™ ืจื’ืข - 'weston_output';

  • ืขื ื“ืขืจื•ื ื’ืขืŸ ื–ืขื ืขืŸ ื’ืขืžืื›ื˜ ืฆื• ืขื ืฉื•ืจ ืจื™ืคึผื™ื˜ืึทื‘ืึทืœ ื‘ื•ื™ืขืŸ;
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ FB_DAMAGE_CLIPS ืคืึทืจืžืึธื’ ืฆื• ืงืึธืžืคึผืึธืกื™ื˜ืึธืจ-drm. ื‘ืึทื–ื•ื ื“ืขืจ ื˜ืขืงืขืก ืึทื ื˜ื”ืึทืœื˜ืŸ ืงืึธื“ ืคึฟืึทืจ ืจื™ื˜ืจื™ื•ื•ื™ื ื’ EDID ืคึผืึทืจืึทืžืขื˜ืขืจืก, ืคึผืจืึทืกืขืกื™ื ื’ ื•ื•ื™ื“ืขื ืžืึธื“ืขืก, ื™ื ื˜ืขืจืึทืงื˜ื™ื ื’ ืžื™ื˜ ื“ื™ KMS API, ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื“ื™ Framebuffer ืื•ืŸ ืคึผืจืึทืกืขืกื™ื ื’ ืฉื˜ืึทื˜ืŸ;
  • ืฆื•ื’ืขื’ืขื‘ืŸ "ื˜ืขืงืข ื˜ื™ื™ึทืš" ืคึผืœื•ื’ื™ืŸ ืคึฟืึทืจ ื˜ืจืึทื ืกืžื™ื˜ื™ื ื’ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ืึท ื˜ืขืงืข;
  • ื“ื™ ื‘ืึทืงืขื ื“ื– ื‘ืึทืงืขื ื“-ื“ืจื ื–ืขื ืขืŸ ื’ืขืฉื˜ืขืœื˜ ืื™ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ,
    ื‘ืึทืงืขื ื“-ื›ืขื“ืœืึทืก
    backend-rdp
    ื‘ืึทืงืขื ื“-ื•ื•ื™ื™ึทืœืึทื ื“
    backend-x11 ืื•ืŸ
    ื‘ืึทืงืขื ื“-ืคื‘ื“ืขื•ื•;

  • ื ืคึผืขืงืœ ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ืึทืคึผื˜ืึทืžื™ื™ื– PNG ื‘ื™ืœื“ืขืจ zopflipng ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืงืึทืžืคึผืจืขืฉืึทืŸ ืึทืœื’ืขืจื™ื“ืึทื ื–ืึธืคึผืคืœื™;
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ xdg_output_unstable_v1 ืื•ืŸ zwp_linux_explicit_synchronization_v1 ื™ืงืกื˜ืขื ืฉืึทื ื–. ื™ื ืงืจืขืึทืกืขื“ ืคึผืขืงืœ ื•ื•ืขืจืกื™ืข ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ื•ื•ืขื’ืœืึทื ื“-ืคึผืจืึธื˜ืึธืงืึธืœืก (ืจื™ืงื•ื•ื™ื™ืจื– 1.18 ืคึฟืึทืจ ืคึฟืึทืจื–ืึทืžืœื•ื ื’);
  • ื“ื™ ื™ื‘ืขืจื’ืึทื ื’ ืฆื• ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืกื™ืกื˜ืขื ืื™ื– ื’ืขืขื ื“ื™ืงื˜ ืžืขืกืึธืŸ. ื‘ื ื™ืŸ ืžื™ื˜ ืึทื•ื˜ืึธื˜ืึธืึธืœืก ืื™ื– ืึธืคึผื’ืขืฉื˜ืขืœื˜.

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’