मुझे कॉल करने glFlush()
और के बीच के व्यावहारिक अंतर को समझने में परेशानी हो रही है glFinish()
।
डॉक्स का कहना है कि glFlush()
और glFinish()
सभी बफ़र किए गए ऑपरेशन्स को ओएनजीसीएल में धकेल देगा, ताकि किसी को भरोसा दिलाया जा सके कि वे सभी को मार दिया जाएगा, फ़र्क यह जा रहा है कि सभी ऑपरेशन्स पूरे होने तक glFlush()
फ़ौरन glFinish()
ब्लॉक हो जाते हैं।
परिभाषाओं को पढ़ने के बाद, मुझे लगा कि अगर मैं इसका उपयोग glFlush()
करूं तो शायद मैं ओएनजीसीएल को अधिक परिचालन प्रस्तुत करने की समस्या में चला जाऊंगा, जितना कि वह निष्पादित कर सकता है। तो, बस कोशिश करने के लिए, मैंने अपने glFinish()
लिए एक glFlush()
और लो और निहारना की अदला-बदली की , मेरा कार्यक्रम चला (जहाँ तक मैं बता सकता था), ठीक उसी; फ्रेम दर, संसाधन उपयोग, सब कुछ समान था।
इसलिए मैं सोच रहा था कि क्या दोनों कॉल के बीच बहुत अंतर है, या यदि मेरा कोड उन्हें अलग नहीं चलाता है। या जहां एक का उपयोग दूसरे के विरुद्ध किया जाना चाहिए। मुझे यह भी पता चला कि ओपनजीएल के पास कुछ कॉल glIsDone()
करने के लिए जाँच होगी कि क्या सभी बफ़र कमांड glFlush()
पूरी तरह से हैं या नहीं (इसलिए कोई भी ओपेनगेल के संचालन को तेजी से नहीं भेज सकता है जितना कि उन्हें निष्पादित किया जा सकता है), लेकिन मुझे ऐसा कोई फ़ंक्शन नहीं मिला ।
मेरा कोड विशिष्ट गेम लूप है:
while (running) {
process_stuff();
render_stuff();
}