<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
 <!ENTITY kappname "kompmgr">
 <!ENTITY package "kwin">
 <!ENTITY % Polish "INCLUDE">
 <!ENTITY % addindex "IGNORE">
]>

<book lang="&language;">
<bookinfo>
<title
>Informacje o &kappname;</title>

<authorgroup>
<author
><personname
><firstname
>Thomas</firstname
><surname
>Luebking</surname
></personname
> <email
>thomas.luebking@web.de</email
> </author>

<othercredit role="translator"
><firstname
>Robert</firstname
><surname
>Gomułka</surname
><affiliation
><address
><email
>carramba@epf.pl</email
></address
></affiliation
><contrib
>Polskie tłumaczenie</contrib
></othercredit
> 
</authorgroup>

<copyright>
<year
>2005</year>
<holder
>Thomas Luebking</holder>
</copyright>

<legalnotice
>&FDLNotice;</legalnotice>

<date
>2005-01-15</date>
<releaseinfo
>2.0.1</releaseinfo>

<abstract>
<para
>&kappname; jest silnikiem generowania składanego obrazu przeznaczonym do użycia przez menedżer okien &kwin;.</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
> 
</abstract>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>kwin</keyword>
<keyword
>silnik generujący</keyword>
</keywordset>
</bookinfo>

<chapter id="introduction">
<title
>Wprowadzenie</title>

<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>

</chapter>

<chapter id="xorg">
<title
>Xorg</title>

<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>

<sect1 id="xsetup">
<title
>Uruchomienie</title>
<para
>Trzeba jawnie włączyć rozszerzenie Composite. Należy w tym celu dodać nową sekcję do pliku konfiguracyjnego X.org:</para>

<programlisting
>Section "Extensions"
    Option "Composite" "Enable"
EndSection
</programlisting>

<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>

<programlisting
>Section "Device"
....
....
    Option     "RenderAccel" "true"
....
....
EndSection</programlisting>

<para
>&kappname; powinno być teraz dostępne. Żeby uzyskać więcej informacji, należy odwiedzić <link linkend="problems"
>Najczęściej zadawane pytania</link
>.</para>

</sect1>

</chapter>

<chapter id="settings">
<title
>Ustawienia</title>

<para
>Rozdział ten opisuje, które parametry można dostrajać, jaki widoczny efekt one spowodują i ich wpływ na wydajność.</para>

<sect1 id="translucency">
<title
>Półprzezroczystość</title>

<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>

<para
>Można niezależnie skonfigurować półprzezroczystość dla następujących elementów:</para>

<variablelist>
<varlistentry>
<term
><guilabel
>Okna aktywne</guilabel
></term>
<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>
</varlistentry>
<varlistentry>
<term
><guilabel
>Okna nieaktywne</guilabel
></term>
<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&percnt;) 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&percnt;.</para>
</listitem>
</varlistentry>
<varlistentry>
<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&percnt;) 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>
</varlistentry>
<varlistentry>
<term
><guilabel
>Okienka dokowania</guilabel
></term>
<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
>  
</listitem>
</varlistentry>
<varlistentry>
<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>
</varlistentry>
<varlistentry>
<term
><guilabel
>Wyłączenie okien ARGB</guilabel
></term>
<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>
</listitem>
</varlistentry>
</variablelist>
</sect1>

<sect1 id="shadows">
<title
>Cienie</title>
<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
> 
<variablelist>
<varlistentry>
<term
><guilabel
>Używanie cieni</guilabel
></term>
<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>
</varlistentry>
<varlistentry>
<term
><guilabel
>Rozmiar aktywnego okna</guilabel
></term>
<term
><guilabel
>Rozmiar nieaktywnego okna</guilabel
></term>
<term
><guilabel
>Rozmiar okna dokującego</guilabel
></term>
<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>
</varlistentry>
<varlistentry>
<term
><guilabel
>Przesunięcie pionowe</guilabel
></term>
<term
><guilabel
>Przesunięcie poziome</guilabel
></term>
<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>
</varlistentry>
<varlistentry>
<term
><guilabel
>Kolor cienia</guilabel
></term>
<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
> 
</listitem>
</varlistentry>
<varlistentry>
<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>
</listitem>
</varlistentry>
<varlistentry>
<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>
</listitem>
</varlistentry>
</variablelist>
</sect1>

<sect1 id="effects">
<title
>Efekty</title>
<variablelist>
<varlistentry>
<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>
</varlistentry>

<varlistentry>
<term
><guilabel
>Prędkość wyłaniania</guilabel
></term>
<term
><guilabel
>Prędkość zanikania</guilabel
></term>
<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
> 
</listitem>
</varlistentry>
</variablelist>
</sect1>

</chapter>

<chapter id="problems">
<title
>Problemy</title>

<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
>W takim wypadku można zauważyć różne niedoskonałości. Oto niektóre z często pojawiających się problemów oraz sposoby ich obejścia: </para>

<qandaset>
<qandaentry>
<question>
<para
>Mam X.org w wersji 6.8.x, ale &kappname; się nie uruchamia</para>
</question>
<answer>
<para
>Trzeba jawnie włączyć rozszerzenie Composite, dodając nową sekcję do /etc/X11/XorgConfig:</para>
<programlisting
>Section "Extensions"
   Option "Composite" "Enable"
EndSection</programlisting>
</answer>
</qandaentry>

<qandaentry>
<question>
<para
>&kappname; działa, ale jest koszmarnie wolne</para>
</question>
<answer>
<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>
<programlisting
>Section "Device"
....
....
Option     "RenderAccel" "true"
....
....
EndSection
</programlisting>

<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>

</answer>
</qandaentry>

<qandaentry>
<question>
<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>
</question>
<answer>
<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
> 
<programlisting
>Section "Device"
....
....
Option  "AllowGLXWithComposite" "true"
....
....
EndSection
</programlisting>
</answer>
</qandaentry>

<qandaentry>
<question>
<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>
</question>
<answer>
<para
>Jest to problem z PictType zgłaszanym przez SDL.</para>

<para
>Obejście problemu:</para>
<screen
>Zamiast uruchamiać bezpośrednio <command
>scummvm</command
>, uruchom
je w sposób <command
>SDL_VIDEO_X11_VISUALID=0x24 scummvm</command
>. Nakazuje to
SDL używać obsługiwanego formatu, a Ty możesz grać jak zwykle. </screen>
</answer>
</qandaentry>

<qandaentry>
<question>
<para
>Program XXX nie chce się uruchamiać po włączeniu rozszerzenia Composite.</para>
<para
>Program YYY powoduje awarię X po włączeniu rozszerzenia Composite.</para>
<para
>Program ZZZ wygląda dziwacznie po włączeniu menadżera Composite.</para>
</question>
<answer>
<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>
<itemizedlist>
<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>
</itemizedlist>
</answer>
</qandaentry>

<qandaentry>
<question>
<para
>Chcę obejrzeć film, ale widzę wyłącznie artefakty w okienku wideo.</para>
</question>
<answer>
<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>
</answer>
</qandaentry>

</qandaset>
</chapter>

<chapter id="credits-and-licenses">
<title
>Podziękowania i licencje</title>

<sect1 id="authors">
<title
>Autorzy</title>
<para
>Thomas Luebking <email
>baghira-style@gmx.net</email
> - Editor</para>
&underFDL; &underGPL; </sect1>


</chapter>

</book>
<!--
Local Variables:
mode: sgml
sgml-omittag: nil
sgml-shorttag: t
End:
-->

