Pag-hack «Ang GLMatrix»

Para sa akin pangalawang post.. .. Ipapakita ko sa iyo (isang bagay na maaaring makita ng ilan na walang silbi) bilang baguhin ang kulay ng aking paboritong screensaver (screensaver, screensaver) tungkol sa xscreensaver, G.L.Matrix, na kung hindi mo alam ito ay isang simulator ng mga tipikal na simbolo na nahuhulog sa monitor sa istilong Matrix na may magagandang 3D effects. Narito ang isang imahe:

Bilang medyo nakakainis ako, at ang aking computer ay na-customize na may mga kulay na itim at ang katangian na asul ng Arch Linux (na mukhang mahusay sa aking asul na backlit keyboard xD) .. ..ang tipikal kulay berde ng Matrix, hindi ito pinagsasama sa akin (o tulad ng sasabihin sa paligid dito at sa mga bata, hindi ito na-hit sa uhog).

Upang makamit ito, gagawin natin makialam sa source code ng xscreensaver, huwag gulatin ang walang karanasan, ito ay simple, at gagawin ko gabay ng hakbang-hakbang upang makamit nila ito; sa mga ito nais kong sabihin sa iyo, na hindi ko iiwan ang mga bagay na nginunguya, ngunit iyon ang ideya ay uminom sila at inilagay ang kanilang kamay..walang takot.

Tandaan: Hindi ako dalubhasa sa lahat ... kaya't anumang mga pagkakamali na nagagawa ko, huwag mag atubili na sabihin sa akin ...

Gawin natin..

1- Mag-download ng source code ng xscreensaver.

Maaari naming ipasok ang pahina ng xscreensaver, at nagda-download kami ang pinakabagong bersyon ng source code (source code).

www.jwz.org/xscreensaver/download.html

O kaya natin direktang mag-download mula sa pandulo sa wget, palaging alam ang bersyon nito, sa kasong ito 5.20:

 $ wget http://www.jwz.org/xscreensaver/xscreensaver-5.20.tar.gz

Inaalis namin ito sa zip.

 $ tar -xf xscreensaver-5.20.tar.gz

 2- Suriin ang iyong mga dependency.

Susuriin namin na mayroon kami ng kinakailangang mga pakete upang magamit ang xscreensaver, para dito gagamitin namin ang 'configure'. Dapat bigyang pansin sa exit (output) na binibigay nila sa amin, upang malaman kung tayo ilang pakete ang nawawala, o mayroon bang ilan mali. Kung nawawala ang isang pakete, hanapin ito at i-download ito (maaari itong sa pamamagitan ng synaptics, apt, pacman, atbp. - depende sa mga gusto at distrito).

-Napasok namin ang bagong nai-zip na folder:

 $ cd xscreensaver-5.20/

Isinasagawa namin ang sumusunod:

 $ ./configure

3- Napatunayan namin ang wastong pagpapatakbo.

Kung walang pakete na nawawala, o mayroon walang mali; nagpapatuloy kami sa i-install ang xscreensaver, upang mapatunayan na gumagana ito nang tama.

Isinasagawa namin:

 $ make
Tandaan: ang paggawa ay karaniwang tumatagal ng ilang minuto, dahil bumubuo ito ng lahat ng mga file ng isang .o (maipapatupad) mula sa .c (code), iyon ay, pinagsasama nito ang pakete.

Kung walang mga pagkakamali sa paggawa, bilang isang gumagamit 'ugat' nai-install namin ito:

 # make install
Tandaan: hindi Ipapaliwanag ko nang detalyado para sa mga hindi nakakaunawa kung ano ang ginagawa ng mga utos na ito, para sa karagdagang impormasyon ay naghahanap para sa pagsasama-sama at Mga Makefile.

Sinusubukan namin:

 $ xscreensaver-demo

4- Baguhin /hacks/glx/glmatrix.c

Kakausapin nila ang kanilang text editor paboritong (vim, nano, gedit, atbp) sa aking kaso na nakita ko, ang file na babaguhin namin sa kasong ito:

 $ vi ./hacks/glx/glmatrix.c

Kailangan nilang hanapin ang a bloke kasama ang mga sumusunod anyo:
{
unsigned long p = XGetPixel (xi, x, y);
unsigned char r = (p >> rpos) & 0xFF;
unsigned char g = (p >> gpos) & 0xFF;
unsigned char b = (p >> bpos) & 0xFF;
unsigned char a = g;
g = 0xFF;
p = (r << rpos) | (g << gpos) | (b << bpos) | (a << apos);
XPutPixel (xi, x, y, p);
}

Matatagpuan ito sa humigit-kumulang sa linya 760, ngunit ang paghahanap para sa "a = g" ay dapat na mahanap agad

Y idagdag namin tulad ng sumusunod sa nais na kulay:
{
unsigned long p = XGetPixel (xi, x, y);
unsigned char r = (p >> rpos) & 0xFF;
unsigned char g = (p >> gpos) & 0xFF;
unsigned char b = (p >> bpos) & 0xFF;
unsigned char a = g;
r = 0x71;
g = 0x93;
b = 0xD1;

p = (r << rpos) | (g << gpos) | (b << bpos) | (a << apos);
XPutPixel (xi, x, y, p);
}

Ang pagiging sa RGB Hexadecimal (pula-berde-asul)

Halimbawa, ang katangiang asul ng Arch Linux siya ba: # 1793D1, natitirang:

r=0x71;
g=0x93;
b = 0xD1;

Panatilihin namin ang mga pagbabago.

5- Pinagsasama namin muli ang bagong xscreensaver gamit ang binagong glmatrix.

Sa puntong ito ay gagawin namin ang halos pareho sa point 2, ngunit sa oras na ito upang makuha ang mga pagbabagong ginawa namin.

Isinasagawa namin:

 $ make clean

Pagkatapos:

 $ make

Kung walang uri ng pagkakamali na lumabas, bilang gumagamit 'ugat' isinasagawa namin:

 # make install

6- Isinasagawa namin, pinatutunayan, na-configure at nasisiyahan.

Isinasagawa namin:

 $ xscreensaver-demo

Sa listahan na pipiliin namin G.L.Matrix:

Preview ng GLMatrix

At sa pagtatanghal dapat makita na ito sa kulay na pinili nila.

Tandaan: sa ilang mga kaso, maaaring kailanganing i-restart ang computer para maganap ang mga pagbabago kapwa sa Preview at kapag ito ay pinatakbo.

I-configure upang tikman .. at mag-enjoy ????

7- Ilang halimbawa ng magkakaibang kulay. (+ TIP)

Hexadecimal Color: # 9F03D9

Hexadecimal Color: # D41213

Hexadecimal Color: # E5E311

TIP: upang malaman a kulay en Hexadecimal gumagamit ako Malambot, binubuksan namin ang color palette at tayahin bilang "HTML notation". Maaari din nating pindutin ang 'o'at kunin ang kulay ng isang imahe upang malaman kung ano ang kulay nito sa Hex.

Inaasahan kong nasiyahan ka tulad ng ginawa ko sa pagsubok at pagsusulat nito .. Anumang mga katanungan huwag mag-atubiling kumonsulta ..

Maligayang pag-hack ..


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   merlin ang debianite dijo

    Kaya, kung maganda ito at lahat ngunit walang katulad ng klasikong berdeng kulay, magandang pagbati ng tuto.

    1.    Batas-Batayan dijo

      Salamat sa iyong puna .. .. malinaw na ang klasikong klasiko ..

      Ngunit ang pinakanakakatawang bagay tungkol dito (hindi bababa sa akin) at kung ano ang nag-udyok sa akin na gawin ito .. ..ay alam na ang pagkakaroon ng source code sa harap natin .. ay tulad ng pagsasabing «mayroon akong Linux, at kung paano ko nais na baguhin ito. .. ..o l! .. "..

      Salamat sa pagbabasa .. 😉

  2.   G. Linux dijo

    Mahusay na artikulo, kung sino ang naisip na sa isang paksa bilang elementarya o simple bilang isang screensaver, magkakaroon kami ng isang buong klase ng pagsasama-sama, pagbabago at pag-install nito.

    1.    Batas-Batayan dijo

      Salamat! .. .. Natutuwa ako na interesado ka ..

      Para sa akin ito ay medyo isang natutunan din na odyssey;) ..

  3.   Nabulok87 dijo

    Mayroon bang pagkakaiba sa paggamit ng:

    $ sudo pacman -S xscreensaver

    1.    Batas-Batayan dijo

      Para sa anong bahagi? .. ..kung sumangguni ka sa mga puntos 2 at 3 upang mapatunayan kung gumagana ito .. sa iyong kaso kung gumagamit ka ng Arch..oo, pareho ito .. dahil palagi kaming may pinakabagong bersyon ... .pero para sa ibang mga distrito ay maaaring hindi pareho ..

      Sa kabilang banda..kung hindi mo mai-download ang source code .. ..hindi mo magagawa ang pagbabago ng kulay .. na layunin ng post na ito ..

      Nasagot ko na ba ang tanong mo?

      1.    Nabulok87 dijo

        ok salamat sa tip ^ _ ^

  4.   rafagcg dijo

    Maraming salamat!!
    Ang pamamaraan ay napaka-kagiliw-giliw.

    Pagbati!

  5.   KZKG ^ Gaara dijo

    Salamat sa ambag 😀

  6.   MATAPANG dijo

    Posible bang maibahagi mo ang binagong modelo sa kulay na pula? salamat