2012-02-23 27 views
6

का आकार क्या है bool शेडर वैरिएबल के लिए टाइप करें जो मैं उपयोग करना चाहता हूं, लेकिन मुझे यह नहीं मिला कि इसका आकार क्या है। यह मायने रखती है क्योंकि जब शिखर की स्थापना सूचक विशेषता मैं डेटा के प्रकार जोजीएलएसएल बूलियन

GL_BYTE, 
GL_UNSIGNED_BYTE, 
GL_SHORT, 
GL_UNSIGNED_SHORT, 
GL_INT, 
GL_UNSIGNED_INT, 
GL_FLOAT, or 
GL_DOUBLE 

ग में हो सकता है ++ आम तौर पर bool 4 बाइट int के रूप में एक ही आकार होना चाहिए निर्दिष्ट करते हैं, लेकिन मैं GLSL के लिए एक ही मान सकते हैं या यह करता है केवल 1 बाइट है?

+1

मुझे यकीन है कि बूल आमतौर पर सी ++ में केवल 1 बाइट होता है (कम से कम इसे कार्यान्वित किया गया है), लेकिन विपरीत साबित होने के लिए तैयार हूं। –

+0

@ क्रिस्टियन राउ वैसे मैंने वेब पर खोज की और आप सही हैं, यहां तक ​​कि रिटर्न का आकार भी 1. मुझे यह कहां से याद नहीं आया .. – Raven

+2

केवल एक चीज जो आप कह सकते हैं वह है कि यह 'आकार (बूल)' है। ईसाई का अधिकार, यह कार्यान्वयन-परिभाषित है और यहां तक ​​कि संकलक सेटिंग्स पर भी निर्भर हो सकता है। – MSalters

उत्तर

11

यह मायने रखती है क्योंकि जब शिखर की स्थापना विशेषता सूचक मैं डेटा के प्रकार जो

यह अप्रासंगिक है हो सकता है निर्दिष्ट करते हैं, के बाद से शिखर विशेषताओं बूलियन्स नहीं कर सकते हैं।

वर्टेक्स शेडर आदानों केवल, नाव हो सकता है फ्लोटिंग प्वाइंट वैक्टर, मैट्रिक्स, पर हस्ताक्षर किए और अहस्ताक्षरित पूर्णांकों और पूर्णांक वैक्टर: GLSL 3.30 विनिर्देश से। वेरटेक्स शेडर इनपुट इन प्रकारों के सरणी भी बना सकते हैं, लेकिन संरचनाएं नहीं।

बूलियन उस सूची में नहीं हैं। 32-बिट:

हालांकि, अगर आप को पता है कि एक GLSL bool के आकार uniform blocks के संदर्भ में है चाहता हूँ, यह uint के रूप में एक ही आकार है।

+0

तो उन सभी प्रकारों (जीएल 4.0 से दोगुना छोड़कर) को अंततः 4 बाइट तक बढ़ाया गया है, और वे केवल क्लाइंट-साइड के लिए प्रासंगिक हैं? – Raven

+1

@ रेवेन: वे कशेरुक शेडर इनपुट के जीएलएसएल प्रकार हैं। विशेषता मूल्य के रूप में आप उन्हें पास करते हैं जो आपके लिए कई मामलों में है; ओपनजीएल में आवश्यकतानुसार डेटा को परिवर्तित करने के लिए विस्तृत अक्षांश है। आपको 32-बिट पूर्णांक पास नहीं करना है; यदि आप चाहें तो 8-बिट पूर्णांक का उपयोग कर सकते हैं। आप सामान्यीकृत पूर्णांक विशेषताओं को फ़्लोटिंग-पॉइंट इनपुट में पास कर सकते हैं। इत्यादि। –

संबंधित मुद्दे