मैं इस मामले में एक लिनक्स एप्लिकेशन - एक स्क्रीनसेवर बनाने की कोशिश कर रहा हूं - और यह को साबित कर रहा है कि विंडो पूर्ण स्क्रीन बनाने के सरल कार्य पर जानकारी प्राप्त करना मुश्किल हो। यहां तक कि मौजूदा स्क्रीनसेवर का कोड इस बात का कोई जिक्र नहीं करता है कि वे इसे कैसे प्रबंधित करते हैं, और मुझे अभी तक XRemoveDecoration()
जैसे कोई स्पष्ट कार्य नहीं दिख रहा है।एक्स 11/जीएलएक्स - फुलस्क्रीन मोड?
बहुत चारों ओर fumbling के बाद, मैं इस के साथ, एक विंडो डेस्कटॉप के रूप में एक ही आकार बनाने का प्रबंधन कैसे किया:
Window win = DefaultRootWindow(disp);
XWindowAttributes getWinAttr;
XGetWindowAttributes(disp, win, &getWinAttr);
win = XCreateWindow(disp, win, 0, 0, getWinAttr.width, getWinAttr.height, 0, vInfo->depth, InputOutput, vInfo->visual, CWBorderPixel|CWColormap|CWEventMask|CWOverrideRedirect, &winAttr);
लेकिन वह कुछ नहीं करता शीर्षक पट्टी और सीमाओं से छुटकारा पाने के। मुझे पता है कि एक रास्ता है, जाहिर है - लेकिन मुझे अभी तक उस दिशा में इशारा करने के लिए कुछ भी नहीं मिला है जो शीर्ष पर फेंकने वाली किसी अन्य विशाल पुस्तकालय पर भरोसा नहीं करता है (जो मौजूदा स्क्रीनसेवर निश्चित रूप से उपयोग नहीं कर रहे हैं)।
संपादित करें: कृपया मेरी पोस्ट से जानकारी न हटाएं। एक बहुत अच्छा कारण है कि मैंने स्पष्ट रूप से बताया कि मौजूदा स्क्रीनसेवर वैकल्पिक पुस्तकालयों का उपयोग नहीं कर रहे हैं, और ऐसा इसलिए है क्योंकि मैं पिछले दिनों के लिए स्रोत कोड का विश्लेषण कर रहा हूं।
मैंने उस उत्तर का चयन किया है जो सबसे अधिक सीधे प्रश्न का उत्तर देता है, और सामान्य रूप से आवेदन पर लागू होता है।
यदि आपको यह प्रश्न xscreensavers शोध करने में मिला है ... वही अभी भी लागू होता है। हां, xscreensaver का अपना एपीआई है - जो जटिल है, और वास्तव में कोड की अधिक पंक्तियां लिखना शामिल है (हां, गंभीरता से)। यदि आप अपने स्क्रीनसेवर में ओपनजीएल चाहते हैं, तो आपको एपीआई (xlockmore, एक प्रतिस्पर्धी प्रणाली) और एक संगतता परत से गुजरना होगा जो इसे xscreensaver में अनुवाद करता है।
हालांकि, xscreensaver किसी भी प्रोग्राम चलाने में सक्षम है जो वर्चुअल रूट विंडो (vroot.h में देखें) स्क्रीनसेवर के रूप में उपयोग कर सकता है। तो मेरी सलाह है कि बस ऐसा करें - आपके पास अधिक नियंत्रण होगा, कोई सीमित API नहीं होगा, और अधिक पोर्टेबिलिटी होगी। (एक उदाहरण मैं को देखा भी, लिनक्स या विंडोज के लिए संकलन कर सकते हैं एक ही फाइल के साथ!)
+1। – Flexo