From bbs@floyd.upol.czMon Jan 29 16:26:51 1996 Date: Mon, 29 Jan 1996 16:24:29 +0100 From: BBS Floyd To: hubicka@limax.paru.cas.cz Subject: Princip #3-X (fwd) *** Forwarded file follows *** Posted By: kotelnik (kotelnik) on 'Linux' Title: Princip #3-X Date: Thu Dec 14 13:16:18 1995 Protoze se paja a puma domahali grafiky rozhodl sem se pro zacatek popsat rozdeleni Xsu. Xsy jsou sitove transparentni to znamenze aplikace zobrazuje svoje okynka prez sit. To se deje pomoci X protokolu. Na jedny strane je X server a na druhy strane je aplikace v xlib. Xlib je nejnizsi knihovna pro praci z X protokolem-umi vytvaret okna,pracovat z fontama a barvickama a kreslit primitiva(ctverecky,kolecka) na druhou stranu Xserver posila udalosti-zamckniti mysi nebo klavesy proste cokoliv co se stane je udalost. Alpikace si muze vybrat co chce prijimat a nejak to zpracovavat. Tedy bezna Xwokeni aplikace by mela napred vytvorit svoje okno a neco tam zplacat a potom cekat na udalosti a nejak se chovat. Mezi tim se jeste plete window manager coz je taky aplikace ale ma special prava a dava vsem oknum ramecky.stara se o preiinani paletek atd.. Celkem zajimava je zprava paletek v Xwoknech..pouzivaji nekolik modelu-monochrome ten je jednoduchej-zadny barvy,truecolor-nic se zpravovat nemusi kazda barva ma cislo. Potom je nekolik modelu mezi a nejrozsirenejsi je posix color. Ten se pouziva skoro na vsech 256 barevnych X a funguje tak ze je jedna centralni paletka a kazda aplikace si barvy alokuje-tedy rekne ja chci cervenou a server prohlidne paletku a kdyz tam neni cervena tak ji prida na nenaalokovany misto a vrati jeho cislo. Aplikace muzou barvicky zdilet tedy kdyz dve naalokujou cervenou obe pouzivaj stejny jmeno. Taky aplikace muzou alokovat writable - to znamena ze reknou ze budou paletku v budoucnu menit a zadna jina aplikace ji uz pouzivat nesmi..Tohle je sice peknej postup. Ale kdyz mate nejakej prohlizec kterej sezere 200 barev tak ostatni aplikace maj smulu a zacnou padat a hlasit could not allocate colormap nebo bezet cernobile..Docela mi tam chybi nejaka moznost zjistit aktualni stav palety,co je alokovanyho atd...myslim ze by to tam melo bejt..to je asi duvod proc tolik X programu je cernobilejch nebo si delaji privatni cmap jako doom Kdyz si naalokujete barvy je treba vytvorit okno. Vytvareni okna je celkem jednoduchy. Jediny co je na tom zajimavy ze se mu daji nastavit parametry-pozadi,popredi,jestli ukladat obsach kdyz je okno prekryte,velikost atd..musite pocitat s tim ze window manager si stim pohraje a velikost muze zmenit.. X umi vytvaret i neco jako okna le v pameti..Jsou to pismapy a je to celkem sikovny-clovek si tam muze neco nakreslit a pak to naraz vybastlit do okna,nebo tam ukladat bitmapy atd...ale zase nektery X servery to odmitaj protoze maji malo pameti. Taky se okna vnorujou do sebe..to se pouziva v Xwindowsich nadstavbach kde kazdy tlacitko je wokno Dalsi cast je prace z grafickym kontextem-clovek si muze vytvorit nekolik grafickych contextu a ty pouzivat v gc jsou informace jako barva cary,tloustka,font atd a kazda slusna kreslici fce to ma jako parametr takze zakladni zlib ma nasledujiciskupiny fci: rizeni spojeni ze serverem-XOpenDisplay atd,promena Display * prace z woknama-XCreateWindow,promena Window * prace z colormapou-promena Colormap *,XColor (barvicky maji v xwindow taky jmena a ma celkem dobrou knihovnu na praci s nima) prace z kontextem-create gc,atd,promena GC kresleni-XLine,Xlines-ma vzdycky funkci na kresleni jednoho a vice kde ta druha je rychlejsi chce jako parametr window a kontext prace z fontama prace z udalostma prace z nadstavbama-X ma hodne nadstaveb-nectvercovy okna,screen saver,P,mat shm atd.. umim jedine shm o ty muzu neco napsat vic toho o Xlib asi nema smysl psat protoze by se to sem neveslo..napisu jeste neco vic o nadstavbach ty jsou jednodusi a daj se zvladnout v postu do 20KB jestli chcete nejakej urcitej problem tak muzu dopsat ale cela Xlib je mooc rozsahla Kotelnik ......a ten nejkotlivejsi......