glew-cmake/auto/src/glewinfo_post.c

130 lines
3.0 KiB
C
Raw Normal View History

}
#endif /* _WIN32 */
/* ------------------------------------------------------------------------ */
int main ()
{
GLuint err;
if (GL_TRUE == glewCreateContext())
{
fprintf(stderr, "Error: glewCreateContext failed\n");
glewDestroyContext();
return 1;
}
glewExperimental = GL_TRUE;
err = glewInit();
if (GLEW_OK != err)
{
fprintf(stderr, "Error [main]: glewInit failed: %s\n", glewGetErrorString(err));
glewDestroyContext();
return 1;
}
#ifdef _WIN32
f = fopen("glewinfo.txt", "w");
if (f == NULL) f = stdout;
#else
f = stdout;
#endif
fprintf(f, "---------------------------\n");
fprintf(f, " GLEW Extension Info\n");
fprintf(f, "---------------------------\n\n");
fprintf(f, "Running on a %s from %s\n",
glGetString(GL_RENDERER), glGetString(GL_VENDOR));
fprintf(f, "OpenGL version %s is supported\n", glGetString(GL_VERSION));
fprintf(f, "GLEW version %s is supported\n", glewGetString(GLEW_VERSION));
glewInfo();
#ifdef _WIN32
wglewInfo();
#else
glxewInfo();
#endif
if (f != stdout) fclose(f);
glewDestroyContext();
return 0;
}
/* ------------------------------------------------------------------------ */
#ifdef _WIN32
GLboolean glewCreateContext ()
{
WNDCLASS wc;
HWND wnd;
HDC dc;
PIXELFORMATDESCRIPTOR pfd;
int pf;
HGLRC rc;
// register window class
ZeroMemory(&wc, sizeof(WNDCLASS));
wc.hInstance = GetModuleHandle(NULL);
wc.lpfnWndProc = DefWindowProc;
wc.lpszClassName = "GLEW";
if (0 == RegisterClass(&wc)) return GL_TRUE;
// create window
wnd = CreateWindow("GLEW", "GLEW", 0, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, GetModuleHandle(NULL), NULL);
if (NULL == wnd) return GL_TRUE;
// get the device context
dc = GetDC(wnd);
if (NULL == dc) return GL_TRUE;
// find pixel format
ZeroMemory(&pfd, sizeof(PIXELFORMATDESCRIPTOR));
pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR);
pfd.nVersion = 1;
pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL;
pf = ChoosePixelFormat(dc, &pfd);
if (pf == 0) return GL_TRUE;
// set the pixel format for the dc
if (FALSE == SetPixelFormat(dc, pf, &pfd)) return GL_TRUE;
// create rendering context
rc = wglCreateContext(dc);
if (NULL == rc) return GL_TRUE;
if (FALSE == wglMakeCurrent(dc, rc)) return GL_TRUE;
return GL_FALSE;
}
void glewDestroyContext ()
{
HWND wnd = FindWindow("GLEW", "GLEW");
HGLRC rc = wglGetCurrentContext();
HDC dc = wglGetCurrentDC();
if (NULL != rc) wglMakeCurrent(NULL, NULL);
if (NULL != rc) wglDeleteContext(wglGetCurrentContext());
if (NULL != wnd && NULL != dc) ReleaseDC(wnd, dc);
if (NULL != wnd) DestroyWindow(wnd);
UnregisterClass("GLEW", GetModuleHandle(NULL));
}
#else
/* ------------------------------------------------------------------------ */
# ifdef __APPLE__
GLboolean glewCreateContext ()
{
}
void glewDestroyContext ()
{
}
# else /* __linux || __sgi */
/* ------------------------------------------------------------------------ */
GLboolean glewCreateContext ()
{
}
void glewDestroyContext ()
{
}
# endif
#endif