सभी ग्लिफ जानकारी के साथ एक बनावट एटलस बनाने के लिए freetype का उपयोग करने का आपका विवरण बिल्कुल ठीक है जो मैं कर रहा हूं वर्तमान आईफोन परियोजना।
मैं प्री-प्रोसेस चरण में फ़ॉन्ट का सभी पार्सिंग करता हूं (विंडोज़ पर सभी सी # में ऐसा होता है)। एटलस स्वयं उत्पन्न हो जाता है और इसमें केवल वर्णों की आवश्यकता होती है - अंतरिक्ष पर कटौती करने के लिए, मैं कभी-कभी बनावट को आकार 2 और एक समझदार रिज़ॉल्यूशन रखने के लिए एक एकल एटलस से अधिक उत्पन्न करता हूं।
आप आसानी से freetype से ग्लाइफ जानकारी खींच सकते हैं। रनटाइम पर बनावट के साथ अपने ऐप के साथ पास करें और फिर आवश्यकतानुसार बनावट के यूवी कॉर्ड को बदलने के लिए यह काफी छोटा है।
क्या इसके लायक है के लिए, यह है कि कैसे मैं अपनी छोटी इंजन के अंदर एक ग्लिफ़ चरित्र को परिभाषित:
struct FontGlyph
{
u32 char_code;
u32 m_x; // base x position on tpage
u32 m_y; // base y position on tpage
u32 m_width; // glyph width
u32 m_height; // glyph height
i32 m_horiBearingX; // Distance to X shift
i32 m_horiBearingY; // Distance to Y shift
u32 m_horiAdvance; // Total Horizontal advance this character requires
u32 m__tpage_index; // Which tpage does this glyph use?
};
मैं तो एक 'SpriteString' वस्तु है, जो मैं से किसी भी अन्य स्ट्रिंग की तरह काफी व्यवहार करती है, अलग है sprites का उपयोग कर इसे आकर्षित कर सकते हैं ....
मैं मानता हूं कि यह सब काफी मामूली समस्या के लिए एक बड़ी नौकरी की तरह लग सकता है, लेकिन मुझे पता चला है कि यह मुझे बहुत लचीलापन देता है और वास्तव में इसे लागू करने में लंबा समय नहीं लगा जब मैं इसे नीचे चला गया।
यदि आपको किसी अन्य विवरण की आवश्यकता है तो उत्तर देने या टिप्पणी करने के लिए स्वतंत्र महसूस करें। (और अच्छी किस्मत :)
आपकी टिप्पणी का जवाब के रूप में मैं टिप्पणी अनुभाग में कमरे से बाहर भाग ...
चेक बाहर freetype प्रलेखन, यह मूल रूप से आप ग्लिफ़ डेटा के बारे में खिलवाड़ के बिना देता है , यह सिर्फ फ़ॉन्ट से बाहर खींचता है। खुद बनावट के लिए, आप प्रत्येक ग्लिफ को प्रस्तुत करने के लिए freetype मिलता है, और उसके बाद बनावट बनाने के लिए प्रबंधन। यह मैं अपने मुख्य ऐप से पूरी तरह से अलग प्रक्रिया के रूप में करता हूं। http://pastebin.com/md1c6354
कृपया ध्यान दें, हालांकि, यह केवल कभी मेरी आँखों के लिए और जनता के उपभोग के लिए नहीं करना था, इसलिए इस तथ्य यह :) नरक के रूप में
गन्दा है बहाना:
यहाँ मेरी उपकरण कोड का एक अंश है कि इस है
[यह बहुत अच्छा लग रहा है] (http: // कोड .google.com/p/freetype-gl /) – bobobobo