2009-12-11 9 views
5

में एंटी-एलाइज्ड टेक्स्ट मैं लिनक्स जीयूआई प्रोग्राम कैसे काम करता है इस बारे में गहरी समझ हासिल करने के लिए एक्सलिब के साथ प्रयोग कर रहा हूं। मैंने एक साधारण प्रोग्राम लिखा है जो एक खिड़की में "हैलो, वर्ल्ड" प्रदर्शित करता है, लेकिन यह एंटी-एलाइज्ड नहीं है क्योंकि यह एंटी-एलाइज्ड नहीं है।एक्स 11

X11 में विरोधी aliased पाठ प्रदर्शित करने का सबसे अच्छा तरीका क्या है? जीटीके, क्यूटी और अन्य टूलकिट में एंटी-एलाइजिंग कैसे कार्यान्वित किया जाता है?

उत्तर

5

एक्स प्रोटोकॉल का पाठ प्रतिपादन सुविधाओं विरोधी aliasing का समर्थन नहीं करते और बहुत इन दिनों उपयोग नहीं किया जाता। (मुझे लगता है कि एक्स फ़ॉन्ट प्रोटोकॉल में अल्फा चैनल के लिए कोई जगह नहीं है।)

जीटीके और क्यूटी फ्रीटाइप लाइब्रेरी का उपयोग कर क्लाइंट में टेक्स्ट प्रस्तुत करते हैं, परिणामस्वरूप अल्फा चैनल के साथ पिक्समैप प्राप्त करते हैं । यदि एक्स सर्वर RENDER एक्सटेंशन का समर्थन करता है, तो क्लाइंट सर्वर पर उस पिक्समैप को अपने अल्फा चैनल का उपयोग करके डिस्प्ले पर मिश्रित करने के लिए भेज सकता है। यदि एक्स सर्वर RENDER का समर्थन नहीं करता है, तो क्लाइंट को स्क्रीन के क्षेत्र को पुनर्प्राप्त करना होगा जहां पाठ प्रदर्शित किया जाना है (मूल रूप से एक छोटा स्क्रीनशॉट लेना), अल्फा ब्लेंडिंग क्लाइंट-साइड करें, और परिणामी अपारदर्शी पिक्समैप भेजें प्रदर्शित होने के लिए एक्स सर्वर पर वापस।

+0

मार्किंग स्वीकार किया जाता है क्योंकि यह वर्णन करता है कि वास्तव में निम्न स्तर पर क्या होता है। यह मुझे आश्चर्यचकित करता है कि फ़ॉन्ट हैंडलिंग अब ग्राहक के पक्ष में है। –

+0

ऐसा लगता है कि यह कम कुशल होगा, लेकिन जो मैंने पढ़ा है, उससे वास्तव में कोई अंतर नहीं है। हां, क्लाइंट को अब सर्वर पर रेंडर टेक्स्ट पिक्समैप्स भेजना है, लेकिन टेक्स्ट लेआउट करते समय इसे सभी फ़ॉन्ट मेट्रिक्स डेटा के लिए सर्वर से पूछताछ नहीं करना है। इसका मतलब यह भी बदसूरत एक्सएलएफडी तार नहीं है। :-) – Wyzard

4

FreeType। जीटीके + पेंगो का उपयोग करता है, और क्यूटी के पास अपनी टेक्स्ट लेआउट लाइब्रेरी है, लेकिन उनमें से दोनों अंत में फ्रीटाइप का उपयोग करते हैं, और कई ऐप्स (उदाहरण के लिए एंटीअलाइज्ड फोंट सक्षम के साथ एक्सटर्म) निचले स्तर की libXft लाइब्रेरी के माध्यम से फ्री टाइप टाइप करें जो ज़ोरग के साथ आता है।

6

freetype ढेर के गलत स्तर पर है। यह आपको केवल कुछ स्थानों पर ग्लाइफ खींचने की अनुमति देगा। आम तौर पर आपको कम से कम एक फ़ॉन्ट चयन तंत्र (Fontconfig द्वारा आपूर्ति) और एक आकार देने वाला इंजन (Pango या क्यूटी द्वारा आपूर्ति) की आवश्यकता होती है।

दोनों पेंगो और क्यूटी दोनों एक त्याग किए गए फ्रीटाइप लेआउट इंजन के फोर्क संस्करण का उपयोग करते हैं, लेकिन इसे HarfBuzz प्रोजेक्ट में सुलझाया जा रहा है।

इस पोस्ट को बेदाद एस्फाहबोड द्वारा भी देखें: Pango vs HarfBuzz, और यह लंबा और अधिक व्यापक दस्तावेज़: State of Text Rendering

+0

टेक्स्ट रेंडरिंग लेख का राज्य एक दिलचस्प पढ़ा गया था। धन्यवाद। –