2009-02-23 5 views
27

मौलिक रूप से मैंने उन स्थानों को मारा जहां मैं ओपनजीएल फ्रेमबफर ऑब्जेक्ट प्राप्त करना चाहता हूं, लेकिन जहां मुझे किसी भी प्रकार की विंडो खोलने में कोई दिलचस्पी नहीं है।क्या आप विंडो खोलने के बिना ओपनजीएल संदर्भ बना सकते हैं?

क्या किसी भी प्रकार की खिड़की से इसे अटैच किए बिना ओपनजीएल संदर्भ बनाना संभव है?

उत्तर

10

हाँ! जब आप ओपनजीएल में पास की गई विंडो के रूप में डेस्कटॉप विंडो का उपयोग कर सकते हैं, तब तक जब तक आप उस पर कुछ भी प्रदर्शित करने की कोशिश नहीं करते हैं;)

बस GetDesktopWindow पर कॉल करें और परिणाम को नई ओपनजीएल विंडो बनाते समय एक तर्क के रूप में पास करें।

+0

क्या यह xorg के लिए भी काम करता है? जब कोशिश की गई तो यह संदर्भ अच्छी तरह से खोलने लगा, लेकिन मैंने फ्रेमबफर ऑब्जेक्ट खोलने और प्रस्तुत करने की कोशिश नहीं की। – Cheery

+0

मुझे पता है कि यह डायरेक्टएक्स पर भी काम करता है लेकिन मैंने xorg –

2

हां, आप ओपनजीएल के साथ ऑफ-स्क्रीन प्रतिपादन कर सकते हैं, लेकिन इसे सेट करने का सटीक तरीका ऑपरेटिंग सिस्टम पर निर्भर है। निकटतम ओएस स्वतंत्र तरीके से आपको Mesa 3D का उपयोग करना होगा, लेकिन फिर आपकी ऑफ़-स्क्रीन प्रतिपादन एचडब्ल्यू त्वरित नहीं होगी।

+0

के साथ इस चाल का उपयोग करने की कोशिश नहीं की है अंतिम टिप्पणी अभी भी मान्य है? यदि मैं कम से कम लिनक्स पर सही ढंग से समझ गया, तो मेसा गति की तुलना में स्वामित्व वाले ड्राइवरों के करीब है। –

+0

क्रमबद्ध करें। लिनक्स पर मेसा सॉफ़्टवेयर और हार्डवेयर प्रतिपादन दोनों की अनुमति देता है, हालांकि परिणाम प्रस्तुतकर्ता और ड्राइवर और जीएल आदेशों के आधार पर दोनों के बीच संक्षेप में भिन्न हो सकते हैं। मेसा सॉफ़्टवेयर रेंडरर को विभिन्न ओएस में समान परिणाम मिलते हैं लेकिन प्रत्येक ओएस पर सेटअप करना आवश्यक नहीं हो सकता है, और जैसे रोनी ने कहा, सॉफ्टवेयर केवल मेसा ग्राफिक्स कार्ड जीपीयू के साथ तेज नहीं है। (हालांकि, आधुनिक सॉफ्टवेयर प्रोसेसर सीपीयू पर आधुनिक सॉफ्टवेयर-केवल मेसा कोड की गति बहुत अधिक है) http://www.mesa3d.org/faq.html –

5

http://www.opengl.org/wiki/Creating_an_OpenGL_Context

इस वेब पेज के अनुसार, WGL_ARB_create_context एक खिड़की के बिना एक संदर्भ बनाने के लिए इस्तेमाल किया जा सकता है। मैंने वास्तव में इसे खुद कोशिश नहीं की है। मैंने संदर्भ बनाने के लिए फ्रीग्लूट का उपयोग किया और फिर फ्रेमबफर + रेंडरबफर पर ऑफ-स्क्रीन प्रदान किया। मैं कभी भी glutMainLoop बुलाए बिना प्रोग्राम से बाहर निकलता हूं। यह klugy है, लेकिन यह मेरे उद्देश्यों के लिए काम करता है।

+0

इस एक्सटेंशन को पुनर्प्राप्त करने के लिए, आपको ओपनजीएल संदर्भ का उपयोग करके ओपनजीएल संदर्भ बनाना होगा पुराने 'डब्लूजीएल' एक्सटेंशन, जिन्हें एक विंडो की आवश्यकता होती है। – Julien

संबंधित मुद्दे

 संबंधित मुद्दे