fork download
  1. int InitGL(HWND hwnd) {
  2. static PIXELFORMATDESCRIPTOR pfd=
  3. {
  4. sizeof(PIXELFORMATDESCRIPTOR), // Size Of This Pixel Format Descriptor
  5. 1, // Version Number
  6. PFD_DRAW_TO_WINDOW | // Format Must Support Window
  7. PFD_SUPPORT_OPENGL | // Format Must Support OpenGL
  8. PFD_DOUBLEBUFFER, // Must Support Double Buffering
  9. PFD_TYPE_RGBA, // Request An RGBA Format
  10. 24, // Select Our Color Depth
  11. 0, 0, 0, 0, 0, 0, // Color Bits Ignored
  12. 0, // No Alpha Buffer
  13. 0, // Shift Bit Ignored
  14. 0, // No Accumulation Buffer
  15. 0, 0, 0, 0, // Accumulation Bits Ignored
  16. 16, // 16Bit Z-Buffer (Depth Buffer)
  17. 0, // No Stencil Buffer
  18. 0, // No Auxiliary Buffer
  19. PFD_MAIN_PLANE, // Main Drawing Layer
  20. 0, // Reserved
  21. 0, 0, 0 // Layer Masks Ignored
  22. };
  23.  
  24. hdc=GetDC(hwnd);
  25. if (hdc==NULL) return 1;
  26.  
  27. iFormat = ChoosePixelFormat(hdc,&pfd);
  28. if (!iFormat || !SetPixelFormat(hdc,iFormat,&pfd)) return 2;
  29.  
  30. hrc=wglCreateContext(hdc);
  31. if (!hrc || !wglMakeCurrent(hdc, hrc)) return 3;
  32.  
  33. glShadeModel(GL_SMOOTH);
  34.  
  35. glClearColor(0.0f,0.0f,0.0f,0.5f);
  36.  
  37. glEnable(GL_DEPTH_TEST);
  38.  
  39. glDepthFunc(GL_LEQUAL);
  40.  
  41. PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribsARB = NULL;
  42.  
  43. // Адрес функции создания расширенного контекста от драйвера видеокарты
  44. wglCreateContextAttribsARB = (PFNWGLCREATECONTEXTATTRIBSARBPROC) (wglGetProcAddress("wglCreateContextAttribsARB"));
  45.  
  46. // временный контекст OpenGL нам больше не нужен, удаляем его
  47. wglMakeCurrent(NULL, NULL);
  48. wglDeleteContext(hrc);
  49.  
  50. // если драйвер видеокарты не предоставил нам адрес этой функции
  51. if (!wglCreateContextAttribsARB) {
  52. dbg(hwnd);
  53. }
  54.  
  55. return 0;
  56. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.c:1:12: error: unknown type name 'HWND'
 int InitGL(HWND hwnd) {
            ^
stdout
Standard output is empty