<para>&kappname; jest silnikiem generowania składanego obrazu przeznaczonym do użycia przez menedżer okien &twin;.</para>
<para>Dokument ten stanowi w zasadzie bardziej ogólne wyjaśnienie, co on robi, jak działa i jakie ma ograniczenia, niż dokumentację jak go używać (jako że działa on automatycznie w tle).</para>
<para>&kappname; wywodzi się z <application>xcompmgr</application>, referencyjnej implementacji składającej obrazy Keitha Packarda do użycia z nowymi możliwościami systemu okien X.</para>
<para>Menadżer składający przechwytuje obraz z okienek X i generuje na ich podstawie pojedynczy obrazek, który zostanie wyświetlony na ekranie. Zaletą takiego rozwiązania jest to, że można zrobić praktycznie cokolwiek z zawartością okienek, włączając w to ich mieszanie (półprzezroczystość) lub dołożenie cieniowania. Można je również zabarwiać, dodać paskudne reklamy, ściskać je, dzielić na kawałki, dodawać linie przeplotu albo cokolwiek, co podsunie wyobraźnia. Ograniczeniem są jedynie możliwości sprzętu.</para>
<para>Żeby &kappname; działało, trzeba mieć koniecznie <emphasis>X.org 6.8 lub późniejsze</emphasis>. Wcześniejsze wersje X.org (6.7), ani XFree86 nie będą działały.</para>
<para>Jeśli Twój <acronym>GPU</acronym> (procesor graficzny w Twojej karcie graficznej) obsługuje rozszerzenie Render, to powinno być włączone w celu przyspieszenia działania. Z jego obsługą najlepiej radzi sobie <trademark>NVIDIA</trademark>, nieco gorzej sprawa wygląda w wypadku kart ATI.</para>
<para>&kappname; powinno być teraz dostępne. Żeby uzyskać więcej informacji, należy odwiedzić <link linkend="problems">Najczęściej zadawane pytania</link>.</para>
<para>Półprzezroczysty obiekt to taki, który pozwala światłu przez siebie przenikać. W kategoriach okien na pulpicie oznacza to, że zawartość okien może być widoczna przez okno znajdujące się na samej górze (hierarchii okien).</para>
<para>Półprzezroczystość pozwala na podkreślenie znaczenia specjalnych okien, uzyskanie trójwymiarowego widoku pulpitu, panowanie nad przykrytymi oknami oraz po prostu ślicznie wygląda. Jej ceną jest wydajność systemu, wykorzystywana do mieszania kolorów.</para>
<listitem><para>Zaleca się wyłączenie półprzezroczystości dla aktywnego okna. Główną przyczyną jest wydajność, natomiast oprócz tego przeglądanie zawartości półprzezroczystego okna powoduje, że Twój mózg musi usuwać irytujące, prześwitujące obrazy, co bywa męczące.</para>
<listitem><para>W przypadku ustawienia okien nieaktywnych jako półprzezroczystych, okna aktywne wystąpią jako wyróżnione i łatwiejsze do skupienia na nich wzroku. Jednakże gdy ustawi się niższą wartość, odnalezienie nieaktywnych okien może sprawiać kłopot. Przy bardzo niskich wartościach (mniejszych niż 20%) można nawet nie być w stanie określić umiejscowienia okien na ich stosie, co może doprowadzić do przypadkowego kliknięcia przycisku <guibutton>OK</guibutton>, zamiast oczekiwanej aktywacji okna. Wartości optymalne to od 60 do 80%.</para>
<term><guilabel>Przemieszczające się okna</guilabel></term>
<listitem><para>Jakkolwiek przyjemnym dla oka efektem jest ustawienie dużego współczynnika przezroczystości (nieprzezroczystość mniejsza niż 20%) dla przemieszczających się okien, trzeba za to zapłacić wysoką cenę w wydajności, zwłaszcza, gdy nie wyłączy się cieniowania (zobacz poniżej). Warto jednak spróbować, a jeśli system będzie za wolny, zachować poruszające się okna nieprzezroczyste. Wartość ta odnosi się również do okienek, które zmieniają rozmiar.</para>
<listitem><para>Jako że okienka dokowania, takie jak kicker, są rzadko (jeśli w ogóle) przesuwane, a do tego mają niewielki rozmiar, półprzezroczystość jest wyłącznie efektem wizualnym, bez dużej szkody dla wydajności systemu.</para>
<term><guilabel>Traktowanie okien "zawsze na wierzchu" jako aktywnych</guilabel></term>
<listitem><para>Jeśli chcesz trzymać okno ponad innymi, zwykle chcesz skupiać na nim uwagę, więc sensowne jest nadanie mu takiej samej widoczności jak oknu aktywnemu.</para>
<listitem><para>XRender obsługuje okienka z maską alfa, innymi słowy sekcje półprzezroczyste. Obecnie nie istnieją (być może z nielicznymi wyjątkami) programy potrafiące zrobić z niego użytek, ponieważ nie ma to żadnego sensu bez menadżera składania obrazów. W przyszłości może to ulec zmianie.</para>
<para>Z drugiej strony, większość programów gtk 1.x (np. <application>xmms</application>) ustawia taką maskę alfa, co skutkuje praktycznie bezużytecznymi oknami (o ile okna pod spodem nie są czarne), więc można tu wyłączyć obsługę okien ARGB, żeby móc używać programów gtk. Miejmy nadzieję, że w najbliższej przyszłości pojawi się na to łata w gtk.</para>
<para>Dlaczego ktokolwiek mógłby chcieć, żeby jego okna rzucały cienie? Cóż, może po prostu dlatego, że to fajnie wygląda albo dlatego, że pozwala na lepsze oddzielenie okien albo ... dlatego że fajnie wygląda.</para>
<listitem><para>Jako że cienie potrzebują dodatkowej mocy procesora i GPU, mogą zostać wyłączone, przy wciąż zachowanej ogólnej funkcjonalności kanału alfa.</para>
<listitem><para>Można określić różne wielkości cienia dla różnych stanów i typów okna. Wartości nie są absolutne, ale zostaną zastosowane w stosunku do rozdzielczości ekranu użytkownika.</para>
<para>W szczególności, można ustawić dowolną wartość (przy ręcznej edycji pliku konfiguracyjnego o wiele więcej niż domyślne <quote>32</quote>), ale większe cienie potrzebują więcej mocy procesora i GPU.</para>
<listitem><para>Domyślnie okno rzuca cień <quote>równy naokoło</quote>, implikując frontalne źródło światła. Użytkownicy zaznajomieni z &MacOS; mogą woleć przesunięcie w pionie, użytkownicy &Windows; natomiast mniejsze przesunięcie w kierunku południowowschodnim. Warto poeksperymentować z tymi wartościami aż do uzyskania optymalnego efektu.</para>
<listitem><para>Zwykle cienie, jako brak światła, rysowane są w odcieniach szarości (tak więc maksymalny kolor cienia to czarny, albo zupełny brak światła). Ale zaraz, przecież to wirtualny świat, więc jeśli chciałoby się mieć cienie różowe, to właściwie dlaczego nie?</para>
<term><guilabel>Usuwanie cieni przy przemieszczaniu</guilabel></term>
<listitem><para>Warto zaznaczyć, jeśli potrzebna jest lepsza wydajność (szczególnie gdy używa się półprzezroczystych przemieszczających się okien).</para>
<term><guilabel>Usuwanie cieni przy zmianie rozmiaru</guilabel></term>
<listitem><para>Zaznaczenie tej opcji jest dobrym pomysłem, niezależnie od tego czy używa się półprzezroczystych przesuwających (zmieniających rozmiar) okien, czy nie. Mapa pikseli cienia okna musi być stale regenerowana przy zmianach rozmiaru, co ma olbrzymi wpływ na wydajność systemu.</para>
<term><guilabel>Wyłaniające się okna</guilabel></term>
<term><guilabel>Wyłanianie pomiędzy zmianami nieprzezroczystości</guilabel></term>
<listitem><para>Zamiast po prostu pokazać nowe okienko, można chcieć, żeby się powoli wyłoniło. Chociaż wygląda to imponująco, płaci się równie imponującą cenę wydajności, a także trudno działać z okienkami właśnie się wyłaniającymi. </para>
<listitem><para>Z przyczyn związanych z wygodą użytkowania w <guilabel>Wyłaniających się oknach</guilabel>, najpraktyczniejszym wydaje się używanie dużej szybkości wyłaniania, a (dla lepszego efektu wizualnego) małej szybkości zanikania. Zapewni to przyjemny efekt i odczucie płynnie działającego systemu, jak również brak dużych opóźnień przy pojawianiu się informacji.</para>
<para>Rozszerzenie Composite (składania obrazu) jest dość nowe. Może powodować występowanie licznych problemów, a nawet prowadzić do awarii X, więc <emphasis>zaleca się usilnie unikania włączania tego rozszerzenia w Xorg.conf na systemach produkcyjnych, używanych do ważnych prac</emphasis>. Jednakże jeżeli tylko można sobie pozwolić na nieco bardziej niestabilny system, z pewnością miłym dodatkiem będzie wzbogacenie jego wyglądu.</para>
<para>Jeśli Twój <acronym>GPU</acronym> (procesor na karcie graficznej) obsługuje rozszerzenie Render (głównie <trademark> NVIDIA</trademark> i jako tako karty ATI), należy wpierw upewnić się, że jest włączone</para>
<para>Jeśli nadal działa wolno, można spróbować zmniejszyć zużycie pamięci. Albo poprzez zmniejszenie głębi kolorów ekranu (np. z 24 bitów do 16), albo zmniejszenie samej rozdzielczości (np. z 1280x1024 na 1024x768).</para>
<para>Należy zwrócić uwagę, że czynnikiem obecnie ograniczającym rozszerzenie Composite wydaje się być rozmiar pamięci podręcznej procesora głównego (CPU).</para>
<para>Po włączeniu rozszerzenia Composite, już nie jestem w stanie uruchomić żadnego z programów <acronym>GLX</acronym>. Posiadam kartę <trademark>NVIDIA</trademark>.</para>
<para>Żeby uchronić przed niektórymi problemami, <trademark>NVIDIA</trademark> wyłączyła obsługę GLX, kiedy aktywne jest rozszerzenie Composite. Ponowne włączenie jest możliwe, ale może prowadzić do problemów na niektórych konfiguracjach jądra/sterownika/GPU.</para>
<para>Chciałem zagrać w grę używającą <acronym>SDL</acronym> (ale nie <acronym>GL</acronym>), powiedzmy że <application>scummvm</application>, ale kiedy &kappname; jest aktywny, jedyne co mogę zobaczyć, to cień!</para>
<para>Rozszerzenie Composite jest wciąż w fazie eksperymentalnej.</para>
<para>Obejście problemu:</para>
<para>Zamiast wywoływać bezpośrednio <command>nazwaProgramu</command>, uruchom ją poprzez <command>XLIB_SKIP_ARGB_VISUALS=1 nazwaProgramu</command></para>
<para>Programy, o których wiadomo, że sprawiają problemy:</para>
<listitem><para>Wszystkie programy gtk1 (np. <application>gmplayer</application>, <application>xmms</application>, <application>gaim</application>) - nie uruchamiają się, wyglądają dziwnie i bezużytecznie albo powodują awarię X</para></listitem>
<listitem><para>&kuickshow; - wyświetla tylko czarną ramkę</para></listitem>
<listitem><para>&Qt; <application>Designer</application> - powoduje awarię X</para></listitem>
<listitem><para>&kopete; - powoduje awarię X</para></listitem>
<listitem><para>&kolf; - powoduje awarię X</para></listitem>
<para>Używasz <quote>xv</quote> jako silnika wideo. Jest to tryb nakładkowy, w którym zawartość obrazu jest zapisywana bezpośrednio do pamięci karty graficznej, omijając X. Dlatego okienko wygląda statycznie (kolorowe tło) i nie jest aktualizowane przez rozszerzenie Damage.</para>
<para>Miejmy nadzieję, że w przyszłości pojawi się na to poprawka. Aktualnie najlepsze wyniki osiąga się używając <application>Xine</application>, ale wyświetlanie półprzezroczystych filmów tak czy owak nie jest szybkie.</para>