2013-01-25 90 views
6

glTexImage2D फ़ंक्शन छवि डेटा में पॉइंटर लेता है। अब के बाद मैं glGenTextures, glBindTexture, और कहा जाता है तो glTexImage2Dक्या मैं glTexImage2D कॉल के बाद छवि को आवंटित स्मृति को मुक्त कर सकता हूं?

OpenGL में बनावट का उपयोग करें। क्या मैं छवि डेटा पीआरटी को आवंटित स्मृति को मुक्त कर सकता हूं? या ओपनगल करता है पॉइंटर से डेटा को प्रतिलिपि बनाता है को glTexImage2D पर कॉल करने के बाद या यह बनावट के लिए मेरे छवि डेटा का उपयोग करता है?

उत्तर

11

हां, आप glTexImage2D को प्रदान करने के बाद अपनी जानकारी सूचक को हटाने के लिए सुरक्षित हैं, यह सिर्फ कार्ड के करीब कहीं (जैसे ग्राफिक्स कार्ड मेमोरी) की प्रतिलिपि बनायेगा और इसे वहां से उपयोग करेगा।

int *p = getImagePixels(); 

glTexImage2D(GL_TEXTURE..., p); 

delete [] p; 
1

gltexImage2D को मुक्त करने पर चर्चा के लिए this similar question देखें। ऐसा लगता है कि आप कर सकते हैं, हालांकि।