हालांकि आधिकारिक रुख बनी हुई है, "आपको पता नहीं होना चाहिए, आप जानना नहीं चाहते हैं, और यह आपकी मदद नहीं करेगा", सौभाग्य से कम से कम दो आईएचवी ने हाल ही में थोड़ा और अंतर्दृष्टि दिखाया है और एक्सटेंशन प्रदान करते हैं उस जानकारी को क्वेरी करने के लिए:
इन एक्सटेंशन के बारे में एक अच्छी बात यह है कि वे एक कम से कम आम विभाजक जो सिर्फ है कि ज्यादातर लोगों को क्या जरूरत है, और आप की जरूरत नहीं है कि है पूछताछ करने के लिए एक्सटेंशन समर्थन या कुछ विशेष करें, क्योंकि वे दोनों glGetIntegerv
के माध्यम से काम करते हैं।
सबसे आसान मामले में, आप केवल 4 पूर्णांकों की सरणी को शून्य में शुरू कर सकते हैं (या कुछ न्यूनतम डिफ़ॉल्ट मान जो आप मानते हैं कि एक्सटेंशन काम नहीं करते हैं), तो आप glGetIntegerv
दो बार कॉल करें (GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX
के साथ और TEXTURE_FREE_MEMORY_ATI
क्रमशः), और अंत में त्रुटि स्थिति को साफ़ करने के लिए glGetError
पर कॉल करें। glGetIntegerv
इंगित होने पर इंगित करने वाली स्मृति को संशोधित नहीं करता है, न ही यह क्रैश या कोई अन्य बुरी चीज करता है - यह केवल त्रुटि स्थिति को GL_INVALID_ENUM
पर सेट करता है।
दोनों एक्सटेंशन पहले सरणी स्थिति में एक मान वापस करते हैं, अति एक दूसरे 3 में कुछ मान देता है।
एनबी .: glAreTexturesResident
मुख्यधारा के हार्डवेयर पर लगभग एक दशक तक समर्थित नहीं किया गया है, वैसे ही बनावट प्राथमिकताओं के समान। आम मंत्र यह है कि चालक लेखक वैसे भी आपके से बेहतर जानता है।
बस इसे यहां जोड़ना ताकि अन्य लोग यहां जा सकें: 'glAreTexturesResident' को कोर प्रोफाइल में बहिष्कृत किया गया है, इस प्रकार उन्हें आधुनिक ओपनजीएल कार्यक्रम में उपयोग करने के लिए समझदारी नहीं है। – legends2k