मैं एक सीएडी-जैसी ऐप (क्यूटी-आधारित) बना रहा हूं, यह एक से अधिक दस्तावेज़ इंटरफ़ेस होगा और प्रत्येक दस्तावेज़ में लगभग 5 व्यूपोर्ट (QGLWidget से व्युत्पन्न) होंगे। इस तरह मुझे अपने फ्लैट शेडर को पूरे एप्लिकेशन में साझा करने की आवश्यकता है, और उसके बाद 3 डी संपत्तियां (वीबीओ के रूप में संग्रहीत मॉडल) को प्रत्येक दस्तावेज़ में साझा किया जाना चाहिए यानी 5 व्यूपोर्ट्स।ओपनजीएल संसाधनों को साझा करने के लिए रणनीति
मैंने सोचा कि जब तक मैंने शेडर प्रोग्राम और वीबीओ ग्लूंट पते के आसपास साझा किया है, तो सभी स्वचालित रूप से काम करेंगे - ऐसा नहीं है। मुझे लगता है क्योंकि प्रत्येक व्यूपोर्ट/संदर्भ में ग्राफिक्स कार्ड पर इसका अपना पता स्थान है, अगर कोई बेहतर जानता है तो कृपया सूचित करें!
मैं आवेदन शुरू करने पर शेडर संकलित करना चाहता हूं, लेकिन यह मुश्किल साबित हो रहा है क्योंकि मुझे पहले वैध ओपनजीएल को वैध स्थिति में प्राप्त करने के लिए एक वैध QGLWidget की आवश्यकता है। लेकिन जैसा कि मुझे QGLWidgets (उनके कन्स्ट्रक्टर के माध्यम से) साझा करने के लिए संसाधनों को साझा करने की आवश्यकता है, अन्य को बनाने की आवश्यकता है और को दिखाया गया है, इससे पहले कि दूसरों को तत्काल किया जा सके। लेकिन यह बहुत अव्यवहारिक है क्योंकि उपयोगकर्ता को एक बार में कई दृश्य दिखाए जा सकते हैं।
यह बनाना आसान है क्योंकि मैं इसे बाहर कर रहा हूं क्योंकि यह शायद ही कभी महत्वपूर्ण है, लेकिन मैं वास्तव में संघर्ष कर रहा हूं - क्या कोई मुझे सही दिशा में इंगित कर सकता है?
धन्यवाद, कैम
उत्कृष्ट! QGLContext अलगाव में एक कूड़े का एक छोटा सा हिस्सा है, डिस्प्ले डिवाइस केवल एक बार डिस्प्ले डिवाइस बनने के बाद ही चलाया जा सकता है, जो मेरे मामले में QGLWidget के अंदर है। तो मैं अपने shader संकलन संदर्भ के रूप में एक _invisible_ QGLWidget बनाउंगा, फिर उस दस्तावेज़ के छिपे हुए QGLWidget के निर्माता में कॉन्स्ट QGLWidget * shareWidget तर्क के रूप में पास करता हूं जिसमें VBO डेटा होता है, और वह विजेट दृश्य दृश्य QGLWidgets पर पास हो जाता है। अनिवार्य रूप से एक QGLWidget पेड़ पदानुक्रम बनाने। अदृश्य जीयूआई घटकों को बनाना मुश्किल से उत्तम दर्जे का है, लेकिन पोर्टिंग की बात आने पर यह बहुत सारे टाइपिंग को बचाएगा। – cmannett85
@ cmannett85 दरअसल, यह * वर्ग * है, का प्रकार: http://blog.qt.digia.com/blog/2011/06/03/threaded-opengl-in-4-8/ – mlvljr