คำตอบ:
ฉันเพิ่งพบว่า GLUT ล้าสมัยแล้ว
นั่นคือสิ่งที่เกิดขึ้นเมื่อคุณยอมรับคำตอบแรกที่คุณเจอ คุณได้รับข้อมูลที่ไม่ดี ไม่ควรใช้ GLUT 3.7 แต่ FreeGLUT สามารถใช้งานร่วมกับระบบย้อนกลับได้อย่างสมบูรณ์
อย่างไรก็ตามคำถามของคุณไปที่อื่น สำหรับการสร้างเกมจริงรูปแบบ GLUT ของ * ไม่เหมาะสม มันไม่ได้ให้คุณควบคุมลูปหลักและคุณต้องการมันจริงๆในเกม (FreeGLUT มีวิธีควบคุมลูปหลัก แต่ก็ยังแปลกอยู่) GLUT สำหรับการเขียนการสาธิตกราฟิก เป็นสิ่งสำคัญมากเมื่อทำการทดสอบเอฟเฟกต์กราฟิกแบบใหม่ดังนั้นจึงควรมีอยู่ในกล่องเครื่องมือของคุณเมื่อจำเป็น แต่รหัสเกมหลักของคุณไม่ควรใช้
GLFWเป็นทางเลือกที่มีน้ำหนักเบาเป็นเกมทางเลือกสำหรับ GLUT มันให้การสนับสนุนขั้นพื้นฐานสำหรับสิ่งต่าง ๆ นอกเหนือจากการสร้างหน้าต่าง OpenGL มันช่วยให้คุณรับอินพุตโหลดภาพเป็นพื้นผิวและอีกสองอย่าง
SDL , SFMLและAllegro 5เป็นชุดเครื่องมือมัลติมีเดียทั้งหมด พวกเขาสามารถสร้างหน้าต่าง OpenGL แต่พวกเขาทำมากขึ้นกว่าที่ พวกเขาให้การสนับสนุนอย่างเต็มที่สำหรับการป้อนข้อมูลเสียงและอื่น ๆ อีกมากมายที่คุณต้องการในการสร้างเกม หากคุณกำลังสร้างเกมสิ่งเหล่านี้เป็นจุดเริ่มต้นที่ดี ฉันชอบ Allegro 5 เป็นส่วนตัว แต่นั่นเป็นเพียงความลำเอียงของฉันที่มีต่อเอกสารที่ดีและ API ที่สะอาด
คุณสามารถค้นหาทางเลือกของ GLUT ในหน้านี้:
http://www.opengl.org/resources/libraries/windowtoolkits/
เพื่อที่ฉันจะเพิ่ม SFML:
ขึ้นอยู่กับว่าคุณต้องการให้เกมของคุณเป็นแบบข้ามแพลตฟอร์มหรือไม่ สำหรับเกมพกพา (Windows, Mac, Linux) SDL นั้นเป็นตัวเลือกเดียว
หากคุณกำหนดเป้าหมายเฉพาะ Windows และ / หรือ XBox มีทางเลือกที่ดีกว่ามากเช่น XNA ซึ่งช่วยให้คุณไม่ต้องเขียนโค้ดจำนวนมากด้วยตนเอง
เพียงแค่เขียนโปรแกรมใน OpenGL แบบดิบ ๆ แต่ต้องเตรียมพร้อมที่จะเผชิญกับแนวความคิดที่ไม่ได้ใช้งานง่ายคณิตศาสตร์และคู่มือขนาดใหญ่
GLUT เป็น API เช่นเดียวกับห้องสมุด ไลบรารี่ดั้งเดิมนั้นล้าสมัยไปแล้ว API เป็นสิ่งที่แตกต่างกันมันค่อนข้างดีที่จะเริ่มต้นมันแค่ต้องการการแก้ไขเพื่อเอาชนะข้อ จำกัด และจัดการกับความต้องการใหม่ ๆ การใช้งานปัจจุบันหลักคือ FreeGLUT ซึ่งได้รับการสนับสนุนและไม่ล้าสมัย นั่นหมายความว่าทางเลือกที่ดีสำหรับ GLUT (เช่นเดียวกับในไลบรารี GLUT) คือ GLUT (เช่นเดียวกับ FreeGLUT)
ปัญหาที่ระบุไว้ข้างต้นด้วย "การควบคุมของวงหลัก" ไม่ถูกต้อง ด้วยรุ่น GLUT ที่ใหม่กว่าคุณสามารถควบคุมลูปเกมของคุณได้ดียิ่งขึ้น (ถ้านั่นสำคัญสำหรับคุณ) ข้อ จำกัด ได้รับการแก้ไขโดย glutMainLoopEvent () ข้อ จำกัด นี้และอื่น ๆ ได้รับการแก้ไขที่นี่:
glutMainLoopEvent
เป็นวิธีที่ดีในการจัดการลูปหลัก มันยังคงใช้โมเดลที่ขับเคลื่อนด้วยเหตุการณ์เพื่อป้อนข้อมูลของคุณแทนที่จะเป็นโมเดลโพลที่คุณได้รับข้อมูลที่คุณต้องการเมื่อคุณต้องการ
Qt รองรับ OpenGL ลองดูที่ Open Inventor และพิจารณาว่าเหมาะสมหรือไม่ที่คุณจะตรงไปที่ 3D API ระดับสูงกว่า