GLSL के बाद से एक में शामिल फ़ाइल विकल्प नहीं है मैं एक "#pragma में शामिल हैं" पार्सर का उपयोग करके इस जोड़ने के लिए कोशिश कर रहा हूँ शामिल हैं। (मुझे यह चाहिए क्योंकि मेरे पास कुछ सामान्य तरीकों हैं जिन्हें मैं केवल एक बार लागू करना चाहता हूं लेकिन केन पर्लिन की चिकनी स्थिति जैसे कई अलग-अलग शेडर्स में उपयोग कर सकता हूं)ओपन/GLSL - कई स्रोत के साथ glShaderSource उपयोग करने का समर्थन करने के लिए फ़ाइलों
शामिल फ़ाइलों को प्राप्त करने के लिए शेडर फ़ाइलों को पार्स करना ठीक काम करता है। लेकिन एकाधिक स्रोत फ़ाइलों के साथ शेडरसोर्स सेट करते समय मैं हमेशा समस्याओं में भाग लेता हूं; चूंकि मेरा मुख्य शेडर आमतौर पर "#version 330" से शुरू होता है और # संस्करण-रेखा हमेशा शेडर में पहली पंक्ति होती है, मैं केवल अपनी मुख्य फ़ाइल को glShadersource को पारित तारों की सरणी में पहली बार जोड़ सकता हूं, और उसके बाद कि सभी शामिल फाइलें। लेकिन तब मेरी मुख्य फ़ाइल उन शामिल फ़ाइलों में लागू किसी भी कार्यों का उपयोग नहीं कर सकते, क्योंकि वे अनिवार्य रूप से अपने मुख्य फ़ाइल के बाद concatenated देंगे, इसलिए संकलक शिकायत है कि यह काम करता है अपने मुख्य फ़ाइल उपयोग कर रहा है पता नहीं है।
एक ही रास्ता मैं यह काम करने के लिए प्राप्त करने के लिए के बारे में सोच सकते हैं मुख्य फ़ाइल को पढ़ने के लिए है, पार्स pragma में शामिल हैं, और उसके बाद की जगह उस फ़ाइल के फ़ाइल-सामग्री के साथ pragma लाइन शामिल होने के लिए (रिकर्सिवली लागू करने सभी फ़ाइलों को शामिल करने के लिए यह वही विधि है जिसमें अन्य फाइलें स्वयं शामिल हो सकती हैं) - लेकिन इसका मतलब यह होगा कि संकलन-त्रुटियों में लिनेनर्स मुख्य फ़ाइल के असली लिननबॉर्स से मेल नहीं खाते हैं।
क्या किसी ने जीएलएसएल के लिए "शामिल" कार्यक्षमता स्थापित की है जो linenumbers काम करता है और रखता है? और यदि ऐसा है - कैसे?
आप, महोदय, एक प्रतिभाशाली हैं! कोई विचार नहीं कि मैंने इसके बारे में क्यों नहीं सोचा, लेकिन मुझे लगता है कि यह मेरे लिए जाने का तरीका होगा। \ o/ – Pygmy