2008-08-20 18 views
23

के तहत ओपनजीएल एक्सटेंशन का उपयोग करने के लिए GLEW का उपयोग करके मैं painful way विंडोज़ पर ओपनजीएल एक्सटेंशन का उपयोग कर रहा हूं। क्या GLEW जाने का आसान तरीका है? मैं इसके साथ कैसे शुरू करूं?विंडोज

उत्तर

32

हां, ओपनजीएल एक्सटेंशन रैंगलर लाइब्रेरी (GLEW) विंडोज़ पर ओपनजीएल एक्सटेंशन का उपयोग करने का एक दर्द रहित तरीका है। यहां बताया गया है कि इसे कैसे शुरू किया जाए:

ओपनजीएल एक्सटेंशन और एक्सटेंशन एपीआई की पहचान करें जिन्हें आप उपयोग करना चाहते हैं। ओपनजीएल एक्सटेंशन OpenGL Extension Registry में सूचीबद्ध हैं।

जांचें कि आपका ग्राफ़िक कार्ड उन एक्सटेंशन का समर्थन करता है, जिनका आप उपयोग करना चाहते हैं। अपने ग्राफिक्स कार्ड के लिए नवीनतम ड्राइवर और एसडीके डाउनलोड और इंस्टॉल करें।

GLEW के साथ NVIDIA OpenGL SDK जहाज के हाल के संस्करण। यदि आप इसका उपयोग कर रहे हैं, तो आपको निम्न में से कुछ चरणों को करने की आवश्यकता नहीं है।

GLEW डाउनलोड करें और इसे अनजिप करें।

अपने Windows पथ वातावरण चर को Glew बिन पथ जोड़ें। वैकल्पिक रूप से, आप glew32.dll को उस निर्देशिका में भी रख सकते हैं जहां विंडोज़ अपने डीएलएल उठाता है।

GLEW में जोड़ें अपने कंपाइलर की निर्देशिका सूची में पथ शामिल करें।

अपने कंपाइलर की लाइब्रेरी निर्देशिका सूची के लिए GLEW lib पथ जोड़ें।

लिंकिंग के दौरान glew32.lib का उपयोग करने के लिए अपने कंपाइलर को निर्देशित करें। आप एक तरह से यह करने के लिए विजुअल C++ compilers उपयोग कर रहे हैं तो आपके कोड के लिए निम्न पंक्ति जोड़कर है:

#pragma comment(lib, "glew32.lib") 

अपने कोड के लिए एक #include <GL/glew.h> पंक्ति जोड़ें। सुनिश्चित करें कि यह अन्य जीएल हेडर फ़ाइलों के शामिल है। (आपको वास्तव में जीएल हेडर फाइलों की आवश्यकता नहीं है यदि आप glew.h शामिल हैं।)

GLUT या GL प्रारंभ करने के बाद glewInit() का उपयोग करके GLEW प्रारंभ करें। यदि यह विफल रहता है, तो आपके सेटअप में कुछ गड़बड़ है।

if (GLEW_OK != glewInit()) 
{ 
    // GLEW failed! 
    exit(1); 
} 

जांचें कि क्या एक्सटेंशन आप उपयोग करना चाहते हैं अब GLEW के माध्यम से उपलब्ध हैं। आप नामक एक बुलियन वैरिएबल की जांच करके ऐसा करते हैं GLEW _your_extension_name जो GLEW द्वारा खुलासा किया गया है।

उदाहरण:

if (!GLEW_EXT_framebuffer_object) 
{ 
    exit(1); 
} 

यह है कि! अब आप अपने कोड में ओपनजीएल एक्सटेंशन कॉल का उपयोग कर सकते हैं जैसे कि वे विंडोज के लिए स्वाभाविक रूप से मौजूद थे।

+3

हैलो से पहले #include <GL/glew.h> जोड़ा। क्या यह मिनजीडब्ल्यू के साथ काम करता है? मैं अब 2 दिनों की कोशिश कर रहा हूं, लेकिन मुझे जो कुछ मिलता है वह त्रुटियां हैं: '_imp__glewInit @ 0''' के अनिर्धारित संदर्भ और '_imp ____ glewCreateShader' के लिए अनिर्धारित संदर्भ ' –

+0

दान मैन: यह समाधान विजुअल सी ++ के साथ था। मुझे नहीं पता कि यह MingGW के साथ काम करता है या नहीं। –

+0

AFAIK, '#pragma टिप्पणी (lib," glew32.lib ") 'केवल विज़ुअल सी ++ पर काम करता है। MinGW के लिए आपको लाइब्रेरी को कंपाइलर की कमांड लाइन में जोड़ना चाहिए (मुझे लगता है कि यह '-L' है)। –

5

व्यक्तिगत रूप से मैं बाहर निकलने के आदेश का उपयोग नहीं करता।

मैं एक अपवाद फेंक दूंगा ताकि आप फ़ंक्शन के अंत में किसी भी अन्य प्रारंभिकरण को साफ़ कर सकें।

अर्थात्:

try 
{ 
    // init opengl/directx 
    // init directaudio 
    // init directinput 

    if (GLEW_OK != glewInit()) 
    { 
     throw std::exception("glewInit failed"); 
    } 
} 
catch (const std::exception& ex) 
{ 
    // message to screen using ex.what() 
    // clear up 
} 

और मैं OJ से सहमत - यदि आप दूसरों के लिए ट्यूटोरियल लिखना चाहते हैं, तो यह वास्तव में इसके लिए गलत जगह है। ओपनजी ट्यूटोरियल के लिए पहले से ही अच्छी जगहों का एक भार है। Try this one for instance

3

मैंने कुछ समय खो दिया, लेकिन आखिर में मैंने जीएलईडब्ल्यू काम करने में कामयाब रहे। मैं Windows7 (64), ग्रहण CDT और MinGW उपयोग कर रहा हूँ, और जिस तरह से वह यह है कि: http://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.10/MSYS-1.0.10.exe/download?use_mirror=freefr&download=

:

डाउनलोड MSYS (MinGW के लिए) और rember MinGW सही ढंग से स्थापित (पथ enviroinment चर ठीक से सेट) के लिए

एक बार स्थापित MSYS लिए यहां जाएं: http://glew.sourceforge.net/ और tgz पैकेज है, जो यूनिक्स प्रणालियों के साथ उपयोग करने के लिए

तो पैकेज को खोलने (आप के रूप में अच्छी 7zip का उपयोग कर सकते हैं) और "Makefile" खोज करना है डाउनलोड करें। यह खोलें और एक पाठ संपादक के साथ (नोटपैड ठीक काम करना चाहिए) पंक्ति में जो होता है "GLEW_DEST" खोजने के लिए और की तरह कुछ के साथ बदलना "GLEW_DEST = C:?/MinGW"

अब तुम जाने के लिए तैयार कर रहे हैं, खुला MSYS (सी: \ MinGW \ msys \ 1.0 \ msys.bat मेरे मामले में) और खोल खोलने पर, उस फ़ोल्डर पर जाएं जहां "मेकफ़ाइल" है।

फिर लिखना एक सरल: "स्थापित करना" और काम हो गया है (कम से कम मेरे लिए यह काम किया)

पुनश्च: मैं भी कॉपी-पेस्ट किया Glew-1.10.0-Win32 \ Glew-1.10.0 \ bin \ release \ Win32 फ़ाइल मेरे सिस्टम 32 फ़ोल्डर में है, और एक्लिप्स सीडीटी में मैंने लिंकर विकल्प में लाइब्रेरी "glew32" जोड़ा और #include <GL/glut.h>