今天同事問可不可以得到 OpenGL 的版本資訊,
我本來以為要安裝 OpenGL SDK 才行,
後來發現原來 MSDN 中有 API 可以呼叫耶~~@@
MSDN 上有提到一個 glGetString API,
用法如下:
#include <gl/gl.h> const char* szVersion = (const char*)glGetString( GL_VERSION );
major_number.minor_number |
以為只要 include 一下,就可以呼叫了,可是並不是這樣......= =b
glGetString 一直 return NULL,根本得不到值,
上網查了一下,判斷要先得到 OpenGL context 才可下這指令,
呃......所以沒有那麼輕易得到喔?=3=
另外,上網查了半天,
我知道「dxdiag」可以得到 DirectX 的版本,
但就是找不到 OpenGL 有沒有對應的程式,
有人知道可以告訴我嗎?@.@
- OpenGL Start Page (Windows)
- glGetString
- OpenGL I: Quick Start Sample
- glGetString returns NULL - GameDev.Net Discussion Forums
- Can't get glGetString(GL_EXTENSIONS) to work - iDevGames
- Extensions and glGetString problems | The Tao Framework
- [原创]OpenGL入门学习——第十四课 — 编程爱好者论坛
【2009.01.22 補充】
找到查詢 OpenGL 版本的軟體,
請參考這一篇:How to Find Which OpenGL Version You’re Running « Greg Dolley’s Weblog
下載 OpenGL Extensions Viewer 即可!
同時也發現 MingGW 中附的 OpenGL library,
如果是 build windows program,其 openGL 版本是 1.1,
否則就是 1.2 or 1.3。
為什麼呢?
據說是因為 Windows 預設支援就是 OpenGL 1.1 version,
如果要更高的支援就是要更新顯示卡驅動程式,
所以 MignGW 才用 1.1 version 的 OpenGL library 吧。
也因為 Windows 預設支援的 OpenGL 是採用軟體運行,
而非使用硬體加速,
因此速度較慢,
或許才造成一般人 DirectX 效能比 OpenGL 好的印象吧~~:)
- OpenGL & OpenGL Utility Specifications
- OpenGL - Wikipedia, the free encyclopedia
- How to Find Which OpenGL Version You’re Running « Greg Dolley’s Weblog












