GLEW คืออะไรและทำงานอย่างไร


15

ฉันกำลังมองหาคำอธิบายที่เริ่มต้นง่าย คำอธิบายของเว็บไซต์ทางการสั้นเกินไปและทำให้ฉันมีคำถามมากกว่าคำตอบ:


  • GLEW คืออะไร

หน้าของนักพัฒนา GLEW พูดว่า:

OpenGL ขยาย Wrangler ห้องสมุด (GLEW) เป็นข้ามแพลตฟอร์มโอเพ่นซอร์ส C / C ++ ห้องสมุดโหลดส่วนขยาย GLEW จัดเตรียมกลไกรันไทม์ที่มีประสิทธิภาพสำหรับการพิจารณาว่าส่วนขยาย OpenGL ใดได้รับการสนับสนุนบนแพลตฟอร์มเป้าหมาย


  • แต่ห้องสมุดโหลดส่วนขยายคืออะไร?

วิกิของ OpenGL พูดว่า

OpenGL โหลด Library เป็นห้องสมุดที่ชี้โหลดฟังก์ชั่น OpenGLที่รันไทม์หลักเช่นเดียวกับส่วนขยาย


  • การพอยน์เตอร์ไปยังฟังก์ชั่น OpenGLหมายถึงอะไร?

  • คืออะไรนามสกุล ?

  • " แกนและส่วนขยาย " หมายความว่าอย่างไร

คำตอบ:


20

คอมไพเลอร์ส่วนใหญ่จะให้ส่วนหัวของ OpenGL ที่ให้การสนับสนุน OpenGL 1.1 แต่ฟังก์ชั่นส่วนใหญ่ที่ให้ใน OpenGL เวอร์ชันนั้นมีมานานแล้วตั้งแต่เลิกใช้งานและขาดคุณสมบัติที่สำคัญเช่น shaders และ vertex buffer object GLEW นั้นเป็นเพียงส่วนหัว (มีไฟล์ต้นฉบับที่ต้องเรียบเรียง แต่คุณสามารถรวมไว้ในโครงการของคุณ) ที่มีฟังก์ชั่น OpenGL ที่ใหม่กว่า

การต่อเติมหมายถึงอะไร

นี่คือลิงค์จาก OpenGL.org เกี่ยวกับพวกเขา เป็นเพียงฟังก์ชั่นเพิ่มเติมสำหรับ OpenGL ที่ไม่ได้เป็นส่วนหนึ่งของ OpenGL มันมีฟังก์ชั่นการใช้งานที่อาจมีประโยชน์ แต่คุณไม่สามารถรับประกันได้ว่าพวกมันจะทำงานบนคอมพิวเตอร์ทุกเครื่องเนื่องจากไม่ได้เป็นส่วนหนึ่งของ core OpenGL

การพอยน์เตอร์ไปยังฟังก์ชั่น OpenGL หมายถึงอะไร?

OpenGL นั้นใช้งานโดยไดรเวอร์กราฟิกเนื่องจากมีฟังก์ชันที่ใช้งานตามข้อกำหนดไม่ใช่ไลบรารีแบบสแตนด์อโลนดังนั้นจึงไม่สามารถเชื่อมโยงกับโครงการของคุณได้

คุณต้องเรียกใช้ฟังก์ชัน (เช่น GetProcAddress แต่ขึ้นอยู่กับแพลตฟอร์มที่คุณกำลังพัฒนา) เพื่อรับตัวชี้ฟังก์ชันที่รันไทม์จากไดรเวอร์สำหรับแต่ละฟังก์ชั่น OpenGL

GLEW มีอยู่เพราะการทำเช่นนั้นอาจเป็นเรื่องยากมาก มันง่ายกว่ามากเมื่อคุณสามารถรวมส่วนหัวและเรียกฟังก์ชันหนึ่งระหว่างการเริ่มต้นซึ่งเป็นสิ่งที่ GLEW ทำ นอกจากนี้ GLEW ยังเป็นแบบข้ามแพลตฟอร์ม

"แกนและส่วนขยาย" หมายความว่าอย่างไร

มันหมายความว่ามันให้ฟังก์ชั่น OpenGL เช่นเดียวกับส่วนขยาย OpenGL

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.