不想使用GLUT,就写了这个。。
仅限windows可用
#include <iostream>
#include <GL\glew.h>
#include <GL\wglew.h>
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glew32.lib")
bool glew_init();
void main()
{
if (!glew_init())
printf("初始化失败");
printf("初始化成功");
}
bool glew_init()
{
WNDCLASSEX wcex;
memset(&wcex, 0, sizeof(wcex));
wcex.cbSize = sizeof(wcex);
wcex.hInstance = GetModuleHandleA(0);
wcex.lpfnWndProc = [](HWND, UINT, WPARAM, LPARAM)->LRESULT { return 1; };
wcex.lpszClassName = "{84B179A9-E1A2-483B-B3CB-F0FE268DB889}";
auto k = RegisterClassExA(&wcex);
HWND hwnd = CreateWindowA("{84B179A9-E1A2-483B-B3CB-F0FE268DB889}", "", 0, 0, 0, 0, 0, 0, 0, wcex.hInstance, 0);
HDC hdc = GetDC(hwnd);
static PIXELFORMATDESCRIPTOR pfd;
pfd.nSize = sizeof(pfd);
pfd.nVersion = 1;
pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL;
pfd.iPixelType = PFD_TYPE_RGBA;
pfd.cColorBits = 32;
pfd.cDepthBits = 16;
SetPixelFormat(hdc, 1, &pfd);
HGLRC hrc = wglCreateContext(hdc);
wglMakeCurrent(hdc, hrc);
GLenum er = glewInit();
wglMakeCurrent(0, 0);
wglDeleteContext(hrc);
ReleaseDC(hwnd, hdc);
DestroyWindow(hwnd);
UnregisterClassA("{84B179A9-E1A2-483B-B3CB-F0FE268DB889}", wcex.hInstance);
if (er != GLEW_OK)
return false;
return true;
}