ในงาน SIGGRAPH 2014 ทาง Khronos Group ได้เปิดตัว OpenGL 4.5 โดยเป็นการปรับปรุงเล็ก ๆ น้อย ๆ โดยการนำเอาส่วนขยายที่ได้รับการรับรองจาก Architecture Review Board (ARB) เข้ามาเป็นส่วนหนึ่งของข้อกำหนดหลักของ API เหมือนกับเวอร์ชั่นย่อยที่ผ่านมา
สำหรับฟีเจอร์ใหม่ของข้อกำหนด OpenGL 4.5 นั้นก็มีดังต่อไปนี้
- Direct State Access (DSA) ( GL_ARB_direct_state_access ) – ความสามารถในการเข้าถึงเพื่อร้องขอข้อมูลและแก้ไขวัตถุต่าง ๆ ได้โดยที่ไม่ต้องผูกเข้ากับ context ก่อน
- Flush Control ( GL_KHR_context_flush_control )- ความสามารถในการเลือกที่จะ flush คำสั่งปัจจุบันที่ยังค้างอยู่ใน context หรือเลือกที่จะยังคงเก็บเอาไว้เวลาที่จะทำการเปลี่ยน context ซึ่งจะเป็นประโยชน์กับแอพพลิเคชันแบบหลายเธรด
- Robustness ( GL_KHR_robustness ) - เป็นฟีเจอร์ที่ช่วยเสริมความปลอดภัยหลายด้าน รวมทั้งการป้องกันผลกระทบกับแอพพลิเคชันที่เกิดขึ้นจากการที่ context ถูกรีเซ็ต และเพิ่ม API ใหม่ที่มีการระบุขนาดของบัฟเฟอร์สำหรับบาง API ที่ไม่มีการระบุไว้ เพื่อลดโอกาสการเกิด buffer overflow
- OpenGL ES 3.1 API and shader compatibility ( GL_ARB_ES3_1_compatibility ) – รองรับชุดคำสั่งของ OpenGL ES 3.1 และ GLSL 3.1
-
DX11 emulation features – จำลองฟีเจอร์บางส่วนของ DirectX 11 เพื่อความสะดวกในการพอร์ตแอพพลิเคชันไปยัง OpenGL
นอกเหนือไปจาก OpenGL 4.5 แล้ว ทาง Khronos Group ได้ประกาศขอความร่วมมือในการเริ่มกันพัฒนา OpenGL รุ่นถัดไป ซึ่งจะเป็น API ที่ถูกออกแบบใหม่หมดหัวจรดเท้า โดยมีทิศทางหลัก ๆ ดังนี้
-
การควบคุม GPU และ CPU จากแอพลิเคชั่นโดยตรงทั้งเพื่อประสิทธิภาพและความสามารถในการคาดเดา
- การรองรับแอพพลิเคชันแบบหลายเธรดที่มากับโอเวอร์เฮดที่ต่ำมาก
- intermediate language ของโปรแกรม shader
API ตัวใหม่นี้กำลังอยู่ในระหว่างการพัฒนา ซึ่งผู้ที่สนใจอยากมีส่วนร่วมสามารถสมัครเข้าร่วมเป็นสมาชิกของ Khronos Group เพื่อสิทธิในการเสนอและการโหวต
ที่มา: Khronos Group
Comments
อ้อ สำหรับคนอยากเล่น OpenGL 4.5 และใช้การ์ดจอ Nvidia ตอนนี้มี beta driver ออกมาด้วยแล้ว
ผมไม่เคยลองนะ 555 แต่คิดว่าได้ครับ
เข้าใจเอาเองมาตลอดว่า context มักจะถูกแนะนำให้ current ขึ้นกับ thread
viewport มันจะถูก render ออกมาอย่างไรมันขึ้นกับว่า เรา makeCurrent ไว้ที่ surface อะไรไว้ แล้วพอสั่ง swapBuffer/draw ก็ออกมาโดน surface ตัวนั้นเลยฮ๊ะ
หากว่าต้องการจัดการ fbo ด้วย ก็แล้วแต่ว่าเซ็ตไว้ใน context อย่างไร
*ผมเขียน qt จะเรียก view ว่า surface มั้ง หรือผมเข้าใจอะไรผิดหรือเปล่า?
-- อ่าวโพสผิดที่ ขอย้ายครับ --