MCPcopy Create free account
hub / github.com/chrxh/alien / initGlfwAndOpenGL

Method initGlfwAndOpenGL

source/Gui/MainWindow.cpp:196–235  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

194}
195
196void _MainWindow::initGlfwAndOpenGL()
197{
198 glfwSetErrorCallback(glfwErrorCallback);
199
200 if (!glfwInit()) {
201 throw std::runtime_error("Failed to initialize Glfw.");
202 }
203
204 // Decide GL+GLSL versions
205#if defined(IMGUI_IMPL_OPENGL_ES2)
206 // GL ES 2.0 + GLSL 100
207 const char* glslVersion = "#version 100";
208 glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);
209 glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
210 glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API);
211#elif defined(__APPLE__)
212 // GL 3.2 + GLSL 150
213 const char* glslVersion = "#version 150";
214 glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
215 glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
216 glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); // 3.2+ only
217 glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // Required on Mac
218#else
219 // GL 3.0 + GLSL 130
220 const char* glslVersion = "#version 130";
221 glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
222 glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
223 //glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); // 3.2+ only
224 //glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // 3.0+ only
225#endif
226
227 WindowController::get().setup();
228 auto windowData = WindowController::get().getWindowData();
229 glfwSetFramebufferSizeCallback(windowData.window, framebufferSizeCallback);
230 glfwSwapInterval(1); //enable vsync
231 ImGui::CreateContext();
232 ImPlot::CreateContext();
233 ImGui_ImplGlfw_InitForOpenGL(windowData.window, true); //setup Platform/Renderer back-ends
234 ImGui_ImplOpenGL3_Init(glslVersion);
235}
236
237void _MainWindow::initGlad()
238{

Callers

nothing calls this directly

Calls 2

getWindowDataMethod · 0.80
setupMethod · 0.45

Tested by

no test coverage detected