directx - Who can tell me what this bit of C++ does? -
CUSTOMVERTEX * pVertexArray; अगर (FAILED (m_pVB- & gt; लॉक (0, 0, (शून्य **) & amp; pVertexArray, 0))) {E_FAIL वापसी; } पीवीर्टेक्सअरे [0]। रचना = डी 3 डीएक्सएवटेन्ट 3 (-1.0, -1.0, 1.0); PVertexArray [1]। रचना = D3DXVECTOR3 (-1.0, 1.0, 1.0); पीवीर्टेक्सअरे [2]। रचना = डी 3 डीएक्सएवटेन्ट 3 (1.0, -1.0, 1.0); ...
मैंने कुछ समय के लिए सी ++ को छुआ नहीं है - इसलिए विषय है लेकिन कोड का यह कोड खुद को भ्रमित कर रहा है M_pVB-> लॉक के बाद सरणी को इनिशियलाइज़ किया जाता है।
ये बहुत अच्छा और सब कुछ है, लेकिन समस्या यह है कि ऐसा कैसे होता है। कोड के नीचे नौ तत्वों का उपयोग करता है, लेकिन एक और समारोह कोड मैं केवल का उपयोग के साथ काम कर रहा हूँ की (काफी कॉपी / पेस्ट) चार तत्वों का कहना है।
CUSTOMVERTEX एक struct है, लेकिन मैं यह धारणा थी कि यह मायने नहीं रखता है कि स्ट्रैक्ट्स / ऑब्जेक्ट्स की एक सरणी को एक निश्चित आकार के लिए आरम्भ किया जाना चाहिए।
क्या कोई इसे साफ़ कर सकता है?
संपादित करें:
उत्तर दिए जाने पर, यह कैसे पता चलता है कि मुझे सरणी में नौ तत्वों की आवश्यकता है, या चार आदि ...?
तो जब तक बफर पर्याप्त बड़ा होता है, तत्व कानूनी होते हैं। यदि हां, तो इस कोड को बफर आकार स्थापित कर रही है अगर मैं गलत नहीं कर रहा हूँ
(विफल होने पर (m_pd3dDevice- & gt;। CreateVertexBuffer (vertexCount * sizeof (CUSTOMVERTEX), 0, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, & Amp; m_pVB, NULL))) {वापसी E_FAIL; }
m_pVB एक ग्राफिक्स को अंक वस्तु, इस मामले संभवतः एक शीर्ष बफर में। इस ऑब्जेक्ट द्वारा आयोजित डेटा आमतौर पर सीपीयू-पहुंच योग्य मेमोरी में नहीं होगा - यह आपके ग्राफिक्स हार्डवेयर की रैम में आयोजित किया जा सकता है या बिल्कुल भी आवंटित नहीं किया जा सकता है; और यह किसी विशेष समय पर GPU द्वारा उपयोग में हो सकता है; ताकि आप इसे से पढ़ सकते हैं या इसे करने के लिए लिखने के लिए चाहते हैं, तो आपको बताने के लिए आपके ग्राफिक्स इस सबसिस्टम की जरूरत है, और है कि क्या लॉक () फ़ंक्शन है - GPU के साथ सिंक्रनाइज़, यह सुनिश्चित करें मुख्य स्मृति में एक बफर डेटा के लिए काफी बड़ा है और इसमें सीपीयू के बिंदु से आपके द्वारा अपेक्षित डेटा होता है, और आपको उस मुख्य स्मृति में पॉइंटर पर वापस लौटाता है। जीपीयू को यह बताने के लिए आपको संबंधित अनलॉक () कॉल करने की ज़रूरत होगी कि आप ऑब्जेक्ट पढ़ने / बदलते हैं।
कैसे बफर के आकार निर्धारित किया जाता है के बारे में अपने प्रश्न है, जहां शिखर बफर निर्माण किया जा रहा है पर देखने के उत्तर देने के लिए - कार्य करने के लिए पारित किया जा रहा आप शीर्ष प्रारूप का वर्णन और एक तत्व गिनती यह देखना चाहिए कि इसे बनाता है।
Comments
Post a Comment