GLUT विंडो छुपाएं - opengl, glut

क्या ओपनजीएल विंडो को छिपाना संभव है और प्रतिपादन अभी भी चल रहा है? मैं glutHideWindow का उपयोग करता हूं जो कभी भी प्रदर्शन फ़ंक्शन को ट्रिगर नहीं करेगा।

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

उत्तर:

जवाब के लिए 5 № 1

क्या ओपनजीएल विंडो को छिपाना संभव है और प्रतिपादन अभी भी चल रहा है?

हां और प्रश्न के दोनों हिस्सों में नहीं।

यदि आप एक विंडो छुपाते हैं, तो विंडो के व्यूपोर्ट के सभी पिक्सल प्रतिपादन करते समय पिक्सेल स्वामित्व परीक्षण में असफल हो जाएंगे। इसलिए आप ओपनजीएल के लिए एक ड्रॉइंग के रूप में एक छिपी हुई विंडो का उपयोग नहीं कर सकते हैं।

आपको जिस चीज की आवश्यकता है वह ड्रॉ करने योग्य ऑफ-स्क्रीन है।

आधुनिक संस्करण हैं फ्रेमबफर ऑब्जेक्ट्स (एफबीओ), जिसे आप नियमित ओपनजीएल पर बना सकते हैंसंदर्भ, जो एक छिपी हुई खिड़की पर भी काम कर सकता है। एफबीओ कुछ खींचने योग्य अनुलग्नक लेते हैं (बफर, बनावट प्रस्तुत करते हैं) और ओपनजीएल को खिड़की के बजाय इन्हें आकर्षित करने की अनुमति देते हैं।

एक पुरानी विधि पीबीफर्स हैं, जो व्यापक रूप से समर्थित हैं, लेकिन एफबीओ के रूप में उपयोग करने में आसान नहीं हैं।

ध्यान दें कि अगर आप ऑफ-स्क्रीन करना चाहते हैंलिनक्स / एक्स 11 पर प्रतिपादन एक्स सर्वर सक्रिय होना चाहिए, यानी वीटी का मालिक होना चाहिए ताकि GPU वास्तव में कमांड को संसाधित कर सके। तो आप पृष्ठभूमि में "बस एक एक्स सर्वर शुरू नहीं कर सकते" "लेकिन एक और एक्स सर्वर डिस्प्ले डिवाइस का उपयोग करें।


जवाब के लिए 0 № 2

खिड़की बनाने के बाद, आप इसका उपयोग कर सकते हैं glutHideWindow() ऑफस्क्रीन जाने के लिए। फिर भी आप सामान्य और उपयोग के रूप में प्रस्तुत करते हैं glReadPixels वापस पढ़ने के लिए और बाद में इसका उपयोग करने के लिए बफर प्राप्त करें।


संबंधित सवाल
सबसे लोकप्रिय