-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cwindow.cpp
51 lines (46 loc) · 1.87 KB
/
Cwindow.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//
// Created by igoryan on 25.04.15.
//
#include "Cwindow.h"
Cwindow::Cwindow() {
if( !glfwInit() )
{
fprintf( stderr, "Ошибка при инициализации GLFWn" );
}
else
{
glfwWindowHint(GLFW_SAMPLES, 4); // 4x Сглаживание
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); // Мы хотим использовать OpenGL 3.3
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); // Мы не хотим старый OpenGL
GLFWwindow *window;
window = glfwCreateWindow( 800, 600, "Tutorial 01", nullptr, nullptr);
if( window == NULL ) {
fprintf( stderr, "Невозможно открыть окно GLFW. Если у вас Intel GPU, то он не поддерживает версию 3.3. Попробуйте версию уроков для OpenGL 2.1.n" );
glfwTerminate();
}
else {
mWindow = window;
glfwMakeContextCurrent(window);
glewExperimental = true;
if (glewInit() != GLEW_OK) {
fprintf(stderr, "Невозможно инициализировать GLEWn");
}
std::thread thr(&Cwindow::threadFunction, this);
thr.join();
glfwTerminate();
}
}
}
void Cwindow::threadFunction()
{
glfwSetInputMode(mWindow, GLFW_STICKY_KEYS, GL_TRUE);
do{
// Пока что ничего не выводим. Это будет в уроке 2.
// Сбрасываем буферы
glfwSwapBuffers(mWindow);
glfwPollEvents();
} // Проверяем нажатие клавиши Escape или закрытие окна
while( glfwGetKey(mWindow, GLFW_KEY_ESCAPE ) != GLFW_PRESS &&
glfwWindowShouldClose(mWindow) == 0 );
}