নিম্ন স্তরের লিনাক্স গ্রাফিক্স


11

শিক্ষামূলক উদ্দেশ্যে, আমি একটি লিনাক্স এনভায়রনমেন্টে এমন একটি অ্যাপ্লিকেশন লিখতে চাই যা কীবোর্ড ইভেন্টগুলি প্রক্রিয়া করতে পারে এবং এক্স বা এসডিএলের মতো বিশাল নির্ভরতা ছাড়াই গ্রাফিক্স আঁকতে পারে। আমি ধারণা করছি এটি অবশ্যই সম্ভব হবে, কারণ এক্স এবং এসডিএল কেবল নিজেরাই প্রোগ্রাম, তাই তাদের অবশ্যই পরিবেশের অন্তর্নিহিত অন্যান্য পদ্ধতির উপর নির্ভর করতে হবে। এই বোঝার কি সঠিক?

যদি তা হয় তবে আমি কোথায় এই জাতীয় প্রোগ্রাম লিখতে শিখতে পারি? আমার সীমিত অভিজ্ঞতা আমাকে বলে যে এটিতে কার্নেলের কাছে কল করা, এবং / অথবা বিশেষ ফাইলগুলিতে লিখন জড়িত; তবে, আমি এই বিষয়ে কোনও টিউটোরিয়াল খুঁজে পাইনি (গুগলের কী তা আমি নিশ্চিত নই)।

এছাড়াও, যদি এটি প্রাসঙ্গিক হয় তবে আমি ভার্চুয়ালবক্সে ডেবিয়ান স্কুইজ চালাচ্ছি। আমি নেটওয়ার্কিং ছাড়াই একটি নেটস্ট্রিস্ট সিডি ব্যবহার করেছি, সুতরাং বর্তমানে এটিতে খুব বেশি ইনস্টল নেই। আমি ইনস্টল করব gcc, তবে আমি আশা করছি যে আমি আরও কিছুই দিয়ে পারব না।


আমি জানি না এটি কি আপনার খুঁজছেন তবে এটি রঙ দেয়। ncurses
জো

আপনি লিনাক্স ফ্রেমবুফারের দিকে একবার নজর রাখতে পারেন ।
mouviciel

এক্স এবং এফবিদেব ছাড়াও এসভিগালিব রয়েছে, যা ২০০১ সাল থেকে আপডেট হয়নি
ব্যবহারকারীর ১676464

আপনি যদি সত্যিই বেয়ার-মেটাল প্রোগ্রামিং করতে চান (উদাহরণস্বরূপ ভিডিও মোড সেট করতে একটি বাধা কল), আমি কি ডসের পরামর্শ দিতে পারি?
ব্যবহারকারী16764

এটি সহায়ক দেখাচ্ছে: tldp.org/HOWTO/Framebuffer- হাওটো
চিনাসৌর

উত্তর:


13

এক্স (বা এক্স উইন্ডো সিস্টেম ) কার্যতঃ একটি আধুনিক লিনাক্স ডেস্কটপটিতে একটি লিনাক্স অ্যাপ্লিকেশন সম্ভবত ব্যবহার করবে সবচেয়ে নিম্ন-স্তরের গ্রাফিক্স এপিআই। বেশিরভাগ অ্যাপ্লিকেশন এমনকি গভীরভাবে যেতে বিরক্ত করবে না এবং এর পরিবর্তে জিটিআই বা কিউটি এর মতো একটি জিইউআই সরঞ্জামকিট বাস্তবায়ন ব্যবহার করবে।

এর নীচে কেবলমাত্র হার্ডওয়্যার ড্রাইভার এবং সম্ভবত ড্রাইভারগুলির জন্য কয়েকটি এক্স-ইন্টারনাল এপিআই রয়েছে। তবে এগুলি সাধারণ ব্যবহারকারীর স্পেস অ্যাপ্লিকেশন দ্বারা ব্যবহৃত বা নকশাকৃত নয়।

আপনি কার্নেল ফ্রেমবফার ডিভাইস (fbdev) ব্যবহার করতে পারেন তবে আমি জানি না যে এটি কতটা ভাল আধুনিক গ্রাফিক্স API সমর্থন করে।

সম্পাদনা করুন: ওয়েল্যান্ডটি এক্স এর বিকল্প যা সম্প্রতি সম্প্রতি মূলধারার কিছু গ্রহণ করেছে। এখন কোনও লিনাক্স-ডেস্কটপ নিখুঁতভাবে ওয়েল্যান্ডে চালানো সম্ভব হবে যেখানে কোনও এক্স-উইন্ডোজ সিস্টেম চলছে না। ওয়েল্যান্ড নিজেই নীচে একটি ইজিএল ড্রাইভারের উপর নির্ভর করে ( ওপেনগেলের সাথে দৃ strongly ়ভাবে সম্পর্কিত একটি এপিআই)।


2
এক্স ফ্রেমবফার ব্যবহার করতে সক্ষম। জিটিকে এবং কিউটি সাধারণত এক্স টার্গেট করার সময় ফ্রেমবফারকে লক্ষ্য করতে সক্ষম হয়।
এপ্রোগ্রামার

@ এপ্রোগ্রামার: এটি সত্য, তবে এটি সত্যই আমার উত্তর পরিবর্তন করে না। বেশিরভাগ জিটিকে / কিউটি অ্যাপ্লিকেশনগুলি এক্সের উপর অন্তর্নিহিত কাঠামো হিসাবে চালিত হয় (অন্তত এখনের জন্য) এবং প্রায় কোনও অ্যাপ্লিকেশন সরাসরি কাঁচা এক্স এপিআই ব্যবহার করে না।
জোচিম সৌর

ফ্রেমবফারকে খুব কমপক্ষে স্ট্যান্ডার্ড ভিসা মোডে গ্রাফিক্স কার্ড চালানো সমর্থন করা উচিত। এটি নিখুঁত হতে পারে না (উদাহরণস্বরূপ, বিভিন্ন রেজোলিউশনের সংখ্যা সীমিত, এবং আমি মনে করি কোনও ওয়াইডস্ক্রিন মোড সমর্থিত নয়) তবে এটি আপনাকে লিনাক্স সিস্টেমে ন্যূনতম সংখ্যার নির্ভরতা সহ গ্রাফিক্স দেবে।
একটি সিভিএন

9

আপনি যদি এক্স ব্যবহার না করে ইনপুট ইভেন্টগুলি পেতে চান তবে আপনাকে সেগুলি ডিভাইস নোডের বাইরে পড়তে হবে। লিনাক্সের একটি জেনেরিক ইনপুট সাবসিস্টেম রয়েছে যার নাম বেশিরভাগ ড্রাইভারই গ্রহণ করে। সুতরাং ইনপুট ইভেন্টগুলি পড়তে, আপনি কোনও / ডিভ / ইনপুট ডিভাইস নোড থেকে পড়তে পারেন।

মাউস ডিভাইস নোডের সন্ধানের একটি সহজ কৌশলটি হ'ল প্রতিটি "বিড়াল" চলাকালীন মাউসকে সরানো একবারে ডিভাইস নোডে "বিড়াল" চালানো। আপনি যদি স্ক্রিনে ডেটা আসতে দেখেন তবে তা হ'ল আপনার মাউস ডিভাইস নোড। সম্পর্কিত হেডার ফাইলটি লিনাক্স / ইনপুট। এটি কীভাবে ব্যবহার করা যায় তার উদাহরণের জন্য, এক্সদেব ড্রাইভারের উত্সটি দেখুন।

নিম্ন স্তরের গ্রাফিক্সের হেরফেরের জন্য, আপনি যদি সত্যিই উচ্চাভিলাষী বোধ করেন তবে আপনি সাধারণত ফ্রেমবুফারের মানচিত্রটি ম্যাপ করতে পারেন এবং নিজের বিট blts করতে পারেন।


3

লিনাক্সে নিম্ন-স্তরের গ্রাফিক্সের জন্য একটি ভাল টিউটোরিয়াল এখানে উপলভ্য ।

নিম্ন-স্তরের ইনপুটগুলির জন্য স্ট্যাক ওভারফ্লোতে একটি ভাল পোস্ট এখানে উপলভ্য ।

নির্বিশেষে, আপনি সম্ভবত গ্রাফিক্স এবং লিনাক্সের জন্য সরাসরি ইনপুট জন্য ফ্রেমবফার বা ড্রাম / কেএমএস (ফ্রেমবফার দুটির চেয়ে সহজ) ব্যবহার করতে চান।


ডাউনটা কেন?
বাস্তবতা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.