निम्न स्तर का लिनक्स ग्राफिक्स


12

शैक्षिक उद्देश्यों के लिए, मैं एक लिनक्स वातावरण पर एक आवेदन लिखना चाहता हूं जो कीबोर्ड घटनाओं की प्रक्रिया कर सकता है और एक्स या एसडीएल जैसी विशाल निर्भरता के बिना ग्राफिक्स आकर्षित कर सकता है। मुझे लगता है कि यह संभव होना चाहिए, क्योंकि एक्स और एसडीएल सिर्फ खुद कार्यक्रम हैं, इसलिए उन्हें पर्यावरण पर निहित अन्य तरीकों पर भरोसा करना चाहिए। क्या यह समझ सही है?

यदि हां, तो मैं इस तरह के कार्यक्रम को लिखना कहां से सीख सकता हूं? मेरा सीमित अनुभव बताता है कि इसमें कर्नेल को कॉल करना, और / या विशेष फ़ाइलों को लिखना शामिल है; हालाँकि, मुझे इस मामले पर कोई भी ट्यूटोरियल नहीं मिल पाया है (मुझे यह भी पता नहीं है कि Google क्या है)।

इसके अलावा, यदि यह प्रासंगिक है, तो मैं वर्चुअलबॉक्स पर डेबियन स्क्वीज़ चला रहा हूं। मैंने नेटवर्किंग के बिना नेटस्टोन सीडी का उपयोग किया है, इसलिए वर्तमान में इस पर बहुत कुछ स्थापित नहीं है। मैं स्थापित करूंगा gcc, लेकिन मुझे उम्मीद है कि मैं इससे ज्यादा कुछ नहीं पा सकता हूं।


मुझे नहीं पता कि यह वही है जो आपकी तलाश में है लेकिन यह रंग देता है। ncurses
जो

आप लिनक्स फ्रेमबफ़र पर एक नज़र डालना चाहते हैं ।
मौविसील

X और fbdev के अलावा, SVGALib भी है, जिसे 2001 से अपडेट नहीं किया गया है।
user16764

यदि आप वास्तव में नंगे-धातु प्रोग्रामिंग करना चाहते हैं (जैसे वीडियो मोड सेट करने के लिए एक रुकावट कहते हैं), तो क्या मैं डॉस का सुझाव दे सकता हूं?
user16764

यह मददगार लग रहा है: tldp.org/HOWTO/Framebuffer-HOWTO
चिनौरौर

जवाबों:


13

एक्स (या एक्स विंडो सिस्टम ) व्यावहारिक रूप से सबसे निम्न-स्तरीय ग्राफिक्स एपीआई है एक लिनक्स एप्लिकेशन आधुनिक लिनक्स डेस्कटॉप पर संभवतः उपयोग करेगा। अधिकांश एप्लिकेशन भी उस गहराई तक जाने से परेशान नहीं होंगे और इसके बजाय GTK या Qt जैसे GUI टूलकिट कार्यान्वयन का उपयोग करेंगे।

नीचे कि केवल हार्डवेयर ड्राइवर हैं और शायद ड्राइवरों के लिए कुछ एक्स-आंतरिक एपीआई हैं। लेकिन वे सामान्य यूजरस्पेस एप्लिकेशन द्वारा उपयोग किए जाने के लिए डिज़ाइन या डिज़ाइन नहीं किए गए हैं।

आप कर्नेल फ्रेमबफ़र डिवाइस (fbdev) का उपयोग कर सकते हैं, लेकिन मुझे नहीं पता कि आधुनिक ग्राफिक्स एपीआई का कितना अच्छा समर्थन है।

संपादित करें: वेलैंड एक्स का एक विकल्प है जिसने हाल ही में कुछ मुख्यधारा को अपनाया है। अब वेनलैंड पर शुद्ध रूप से लिनक्स-डेस्कटॉप चलाना संभव है, जिसमें कोई एक्स-विंडोज सिस्टम नहीं चल रहा है। वेलैंड खुद ही एक ईजीएल चालक पर निर्भर करता है (एक एपीआई जो ओपनग्ल से दृढ़ता से संबंधित है)।


2
एक्स फ्रेमबफ़र का उपयोग करने में सक्षम है। GTK और Qt, जबकि आमतौर पर X को लक्षित करते हैं, वे भी फ्रेम-बफ़र को लक्षित करने में सक्षम हैं।
एपीग्रामग्राम

@AProgrammer: यह सच है, लेकिन यह वास्तव में मेरा जवाब नहीं बदलता है। अधिकांश जीटीके / क्यूटी एप्लिकेशन अंतर्निहित ढांचे (कम से कम अभी) के रूप में एक्स पर चलते हैं और लगभग कोई भी एप्लिकेशन सीधे कच्चे एक्स एपीआई का उपयोग नहीं करता है।
जोआचिम सॉउर

फ़्रेमबफ़र को बहुत कम से कम, मानक वेसा मोड में ग्राफिक्स कार्ड चलाने का समर्थन करना चाहिए। यह सही नहीं हो सकता है (विभिन्न प्रस्तावों की संख्या सीमित है, उदाहरण के लिए, और मुझे नहीं लगता कि कोई भी वाइडस्क्रीन मोड समर्थित हैं), लेकिन यह आपको कम से कम निर्भरता के साथ लिनक्स सिस्टम पर ग्राफिक्स देगा।
एक CVn

9

यदि आप एक्स का उपयोग किए बिना इनपुट इवेंट प्राप्त करना चाहते हैं तो आपको उन्हें डिवाइस नोड्स से बाहर पढ़ना होगा। लिनक्स में एक जेनेरिक इनपुट सबसिस्टम है जिसे एवदेव कहा जाता है जिसका अधिकांश ड्राइवर लाभ उठाते हैं। तो इनपुट घटनाओं को पढ़ने के लिए, आप डिवाइस के किसी भी नोड से / देव / इनपुट में पढ़ सकते हैं।

माउस डिवाइस नोड को खोजने के लिए एक आसान चाल डिवाइस पर "बिल्ली" को एक बार में चलाने के लिए है, प्रत्येक "बिल्ली" के दौरान माउस को स्थानांतरित करना। यदि आप स्क्रीन पर आने वाले डेटा को देखते हैं तो वह आपका माउस डिवाइस नोड है। प्रासंगिक हेडर फ़ाइल linux / input.h है। इसका उपयोग कैसे करें के एक उदाहरण के लिए, xevdev ड्राइवर के लिए स्रोत देखें।

निम्न स्तर के ग्राफिक्स हेरफेर के लिए, यदि आप वास्तव में महत्वाकांक्षी महसूस कर रहे हैं, तो आप आमतौर पर फ्रेमबफ़र को मैप कर सकते हैं और अपने स्वयं के ब्लास्ट कर सकते हैं।


3

लिनक्स पर निम्न-स्तरीय ग्राफिक्स के लिए एक अच्छा ट्यूटोरियल यहां उपलब्ध है

निम्न-स्तरीय इनपुट के लिए स्टैक ओवरफ्लो पर एक अच्छी पोस्ट यहां उपलब्ध है

भले ही, आप शायद ग्राफिक्स के लिए फ्रेमबफ़र या ड्रम / किलोमीटर (फ्रेमबफ़र दो का सरल होना) का उपयोग करना चाहते हैं और लिनक्स पर प्रत्यक्ष इनपुट के लिए एवदेव।


क्यों होता है पतन?
वैशाली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.