2013-01-11 50 views
8

this प्रश्न के मुताबिक, glDeleteBuffers बफर की वीडियो मेमोरी को मुफ्त में चिह्नित करता है। लेकिन जब मैं एक वीएओ पर glDeleteVertexArrays को कॉल करता हूं, तो क्या यह कॉल सभी वीबीओ को हटा देगा, जो इस वीएओ से जुड़ा हुआ है?क्या glDeleteVertexArrays वीओओ को हटाने के लिए प्रेरित हैं, वीएओ से हटाए जा रहे हैं?

यदि नहीं, तो मुझे वीबीओ कब हटा देना चाहिए? वीएओ को हटाने से पहले या उसके बाद?

+0

कृपया उन्हें "वीबीओ" न कहें। स्टोर वर्टेक्स डेटा की तुलना में बफर ऑब्जेक्ट्स [ए * लॉट * अधिक] (http://www.opengl.org/wiki/Buffer_Object#General_use) कर सकते हैं। –

+0

हालांकि यह सच है, वीबीओ शुरुआती लोगों के बीच बहुत आम और समझदार है। Vertex की शब्दावली का उल्लेख नहीं है ओपनजीएल भूमि में * स्थिति * किसी भी मतलब नहीं लगता है। –

उत्तर

11

लेकिन जब मैं एक वीएओ पर glDeleteVertexArrays को कॉल करता हूं, तो क्या यह कॉल इस वीएओ से जुड़े सभी वीबीओ को हटा देगा?

नहीं। यह अब उन्हें संदर्भित नहीं करेगा। और यदि आपने उन बफर ऑब्जेक्ट्स को हटा दिया है, और कोई अन्य ऑब्जेक्ट्स उन्हें संदर्भित नहीं करते हैं, (FYI: VAO केवल एकमात्र चीजें नहीं हैं जो बफर ऑब्जेक्ट्स को संदर्भित कर सकती हैं), और वे किसी भी संदर्भ से संबंधित नहीं हैं, फिर उनका संग्रहण नष्ट हो जाएगा।