glGetString(GL_EXTENSIONS)
は、ビデオ カードでサポートされているほとんどの拡張子 (スペースで区切られています) を返します。ただし、Windows 固有のWGL_拡張機能 (OpenGL バージョン 3.0+ 用) は、この呼び出しには含まれていません。wglGetExtensionsString(HDC)
また、カードでサポートされている残りの WGL 拡張機能を取得するためにも呼び出す必要があります。
コード スニペットを次に示します ( ARBサフィックスを削除してもかまいません)。
#include <windows.h>
#include <iostream>
#include <GL/gl.h>
// function ptr: WGL specific extensions for v3.0+
typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC)(HDC hdc);
PFNWGLGETEXTENSIONSSTRINGARBPROC pwglGetExtensionsStringARB = 0;
#define wglGetExtensionsStringARB pwglGetExtensionsStringARB
...
// get WGL specific extensions for v3.0+
wglGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC)wglGetProcAddress("wglGetExtensionsStringARB");
if(wglGetExtensionsStringARB)
{
const char* str = wglGetExtensionsStringARB(hdc);
if(str)
{
std::cout << str << std::endl;
}
}
wglGetExtensionsString()
パラメータとして現在のウィンドウ表示の HDC (Handle to Device Context) が必要であることに注意してください。HDC はウィンドウ ハンドル (HWND) から取得できます。
HDC hdc = ::GetDC(hwnd);