แฮ็ก« The GLMatrix »

สำหรับฉัน โพสต์ที่สอง.. .. ฉันจะแสดงให้คุณเห็น (สิ่งที่บางคนอาจคิดว่าไม่มีประโยชน์) เป็น เปลี่ยนสี ของสกรีนเซฟเวอร์ที่ฉันชอบ (สกรีนเซฟเวอร์สกรีนเซฟเวอร์) เกี่ยวกับ xscreensaver, GL เมทริกซ์ซึ่งหากคุณไม่รู้ว่าเป็นการจำลองสัญลักษณ์ทั่วไปที่ตกลงมาจากจอภาพในรูปแบบ Matrix พร้อมเอฟเฟกต์ 3 มิติที่สวยงาม นี่คือภาพ:

เนื่องจากฉันค่อนข้างน่ารำคาญและคอมพิวเตอร์ของฉันถูกปรับแต่งด้วยสีดำและสีน้ำเงินที่เป็นลักษณะเฉพาะของ Arch ลินุกซ์ (ซึ่งดูดีด้วย xD คีย์บอร์ดเรืองแสงสีฟ้าของฉัน) .. .. ตามแบบฉบับ สีเขียว ของเมทริกซ์มันไม่ได้รวมฉันไว้ (หรืออย่างที่ใคร ๆ พูดกันแถว ๆ นี้และในหมู่เด็ก ๆ มันไม่ได้ตีด้วยเมือก)

เพื่อให้บรรลุเป้าหมายนี้เราจะ เบียดบัง ในซอร์สโค้ดของ xscreensaver อย่าตกใจผู้ไม่มีประสบการณ์มันง่ายมากและฉันจะ แนะนำทีละขั้นตอน เพื่อให้พวกเขาบรรลุ ด้วยสิ่งนี้ฉันอยากจะบอกคุณว่าฉันจะไม่ทิ้งของที่เคี้ยวแล้ว แต่นั่น แนวคิดก็คือพวกเขาดื่มและวางมือ..ปราศจากความกลัว.

หมายเหตุ: ฉันไม่ใช่ผู้เชี่ยวชาญ แต่อย่างใด ... ไม่ว่าฉันจะทำผิดพลาดประการใดโปรดบอกฉัน ...

มาลงมือทำ ..

1- ดาวน์โหลดซอร์สโค้ดของ xscreensaver

เราสามารถเข้าสู่หน้า xscreensaver และ เราดาวน์โหลด เวอร์ชันล่าสุดของ รหัสแหล่งที่มา (รหัสแหล่งที่มา).

www.jwz.org/xscreensaver/download.html

หรือเราทำได้ ดาวน์โหลดโดยตรง จาก สถานีปลายทาง กับ wgetมักจะรู้ว่า รุ่นของมัน, ในกรณีนี้ 5.20:

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

เราเปิดเครื่องรูดมัน:

 $ tar -xf xscreensaver-5.20.tar.gz

 2- ตรวจสอบการอ้างอิงของคุณ

เราจะตรวจสอบว่าเรามีไฟล์ แพ็คเกจที่จำเป็น เพื่อให้สามารถใช้ xscreensaver ได้ สำหรับสิ่งนี้เราจะใช้ 'กำหนดค่า'. ต้อง ให้ความสนใจ ที่ทางออก (เอาท์พุต) ที่พวกเขาให้เราเพื่อที่จะรู้ว่าเรา บางแพ็กเกจหายไปหรือมี ความผิดพลาด. หากแพ็กเกจหายไปให้ค้นหาและดาวน์โหลด (สามารถทำได้ผ่านทาง Synaptics, apt, Pacman และอื่น ๆ - ขึ้นอยู่กับรสนิยมและการกระจาย)

- เราเข้าสู่โฟลเดอร์ที่คลายซิปใหม่:

 $ cd xscreensaver-5.20/

เราดำเนินการดังต่อไปนี้:

 $ ./configure

3- เราตรวจสอบการทำงานที่ถูกต้อง

หากไม่มีแพ็คเกจใดหายไปหรือไม่มี ไม่มีผิด; เราดำเนินการต่อไป ติดตั้ง xscreensaver เพื่อตรวจสอบว่าทำงานได้อย่างถูกต้อง

เราดำเนินการ:

 $ make
หมายเหตุ: โดยปกติ make จะใช้เวลาสองสามนาทีเนื่องจากสร้างไฟล์ทั้งหมด a .o (ไฟล์ปฏิบัติการ) จาก. c (code) นั่นคือคอมไพล์แพ็กเกจ

หากไม่มีข้อผิดพลาดในการสร้างในฐานะผู้ใช้ 'ราก' เราติดตั้ง:

 # make install
หมายเหตุ: ไม่ ฉันจะอธิบายรายละเอียดสำหรับผู้ที่ไม่เข้าใจว่าคำสั่งเหล่านี้ทำอะไรสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการรวบรวมและ Makefiles

เราทดสอบ:

 $ xscreensaver-demo

4- แก้ไข /hacks/glx/glmatrix.c

พวกเขาจะพูดคุยกับพวกเขา แก้ไขข้อความ รายการโปรด (กลุ่มนาโน gedit ฯลฯ ) ในกรณีของฉันฉันเห็นไฟล์ที่เราจะแก้ไขในกรณีนี้:

 $ vi ./hacks/glx/glmatrix.c

พวกเขาต้องหาไฟล์ กลุ่ม ดังต่อไปนี้ รูปร่าง:
{
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);
}

ตั้งอยู่ประมาณบรรทัด 760 แต่การค้นหา "a = g" ควรจะพบทันที

Y เราเพิ่ม ตามสีที่ต้องการ:
{
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);
}

กำลังอยู่ใน RGB เลขฐานสิบหก (แดง - เขียว - น้ำเงิน)

ตัวอย่างเช่นลักษณะสีน้ำเงินของ Arch ลินุกซ์ เขาคือ: #1793D1ที่เหลือ:

r=0x71;
ก = 0x93;
ข = 0xD1;

เราเก็บ การเปลี่ยนแปลง.

5- เราคอมไพล์ xscreensaver ใหม่ด้วย glmatrix ที่แก้ไขแล้ว

ณ จุดนี้เราจะทำเช่นเดียวกับในไฟล์ จุดที่ 2แต่คราวนี้เพื่อจับภาพการเปลี่ยนแปลงที่เราทำ

เราดำเนินการ:

 $ make clean

จากนั้น:

 $ make

หากไม่มีข้อผิดพลาดเกิดขึ้นในฐานะผู้ใช้ 'ราก' เราดำเนินการ:

 # make install

6- เราดำเนินการตรวจสอบกำหนดค่าและเพลิดเพลิน

เราดำเนินการ:

 $ xscreensaver-demo

ในรายการที่เราเลือก GL เมทริกซ์:

ตัวอย่าง GLMatrix

และในการนำเสนอควรเห็นสีที่พวกเขาเลือกอยู่แล้ว

หมายเหตุ: ในบางกรณีอาจจำเป็นต้องรีสตาร์ทคอมพิวเตอร์เพื่อให้การเปลี่ยนแปลงมีผลทั้งในการแสดงตัวอย่างและเมื่อรัน

กำหนดรสชาติ.. และ สนุก ????

7- ตัวอย่างสีที่ต่างกัน (+ เคล็ดลับ)

เลขฐานสิบหกของสี: # 9F03D9

เลขฐานสิบหกของสี: # D41213

เลขฐานสิบหกของสี: # E5E311

เคล็ดลับ: รู้ก สี en เลขฐานสิบหก ฉันใช้ GIMPเราเปิดจานสีและคิดเป็น "สัญกรณ์ HTML". นอกจากนี้เรายังสามารถกดปุ่ม 'o'และใช้สีของภาพเพื่อให้ทราบว่ามีสีอะไรใน Hex

ฉันหวังว่าคุณจะสนุกกับการลองเขียนมันมากที่สุดเท่าที่ฉันเคยมีคำถามใด ๆ อย่าลังเลที่จะปรึกษา

แฮ็คแฮ็ค ..


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   เมอร์ลินเดเบียน dijo

    ถ้ามันดูดีและทุกอย่าง แต่ไม่มีอะไรที่เหมือนกับสีเขียวคลาสสิกคำทักทาย tuto ที่ดี

    1.    RAW-พื้นฐาน dijo

      ขอบคุณสำหรับความคิดเห็นครับ .. .. ชัดเจนว่าคลาสสิคก็คือ ..

      แต่สิ่งที่สนุกที่สุดเกี่ยวกับเรื่องนี้ (อย่างน้อยสำหรับฉัน) และสิ่งที่กระตุ้นให้ฉันทำ .. .. คือการรู้ว่ามีซอร์สโค้ดอยู่ข้างหน้าเรา .. ก็เหมือนกับการพูดว่า“ ฉันมี Linux และฉันต้องการเปลี่ยนมันอย่างไร . .. ล.! .. "..

      ขอบคุณที่อ่าน .. 😉

  2.   นายลินุกซ์ dijo

    บทความที่ยอดเยี่ยมใครจะจินตนาการได้ว่าในหัวข้อระดับประถมศึกษาหรือเรียบง่ายอย่างสกรีนเซฟเวอร์เราจะต้องมีการรวบรวมการปรับเปลี่ยนและการติดตั้งทั้งหมด

    1.    RAW-พื้นฐาน dijo

      ขอบคุณ! .. .. ดีใจที่คุณสนใจ ..

      สำหรับฉันมันก็เป็นการเรียนรู้โอดิสซีย์เหมือนกัน;) ..

  3.   โรตส์ 87 dijo

    มีความแตกต่างกับการใช้:

    $ sudo pacman -S xscreensaver

    1.    RAW-พื้นฐาน dijo

      สำหรับส่วนใด .. .. หากคุณอ้างถึงจุดที่ 2 และ 3 เพื่อตรวจสอบว่าใช้งานได้หรือไม่ .. ในกรณีของคุณถ้าคุณใช้ Arch .. ใช่มันก็เหมือนกัน .. เนื่องจากเรามีเวอร์ชันล่าสุดเสมอ .. .. แต่สำหรับ distros อื่น ๆ อาจไม่เหมือนกัน ..

      ในทางกลับกัน.. หากคุณไม่ดาวน์โหลดซอร์สโค้ด .. .. คุณไม่สามารถทำการปรับเปลี่ยนสีได้ .. ซึ่งเป็นเป้าหมายของโพสต์นี้ ..

      ฉันตอบคำถามของคุณหรือไม่?

      1.    โรตส์ 87 dijo

        โอเคขอบคุณสำหรับเคล็ดลับ ^ _ ^

  4.   ราแฟกซีจี dijo

    ขอบคุณมาก ๆ!!
    ขั้นตอนน่าสนใจมาก

    ทักทาย!

  5.   KZKG ^ กาอาระ dijo

    ขอบคุณสำหรับการสนับสนุน😀

  6.   BOLD dijo

    เป็นไปได้หรือไม่ที่คุณจะแบ่งปันโมเดลที่แก้ไขแล้วโดยมีสีแดง ขอบคุณ