|
|
@@ -0,0 +1,70 @@
|
|
|
+#include "config.h"
|
|
|
+
|
|
|
+#include <imgui.h>
|
|
|
+#include <imgui_impl_glfw.h>
|
|
|
+#include <imgui_impl_opengl3.h>
|
|
|
+
|
|
|
+#include <glad/gl.h>
|
|
|
+#include <GLFW/glfw3.h>
|
|
|
+
|
|
|
+#include <spdlog/spdlog.h>
|
|
|
+
|
|
|
+#include <cassert>
|
|
|
+
|
|
|
+int main() {
|
|
|
+
|
|
|
+ // setup glfw and main window
|
|
|
+ auto ret = glfwInit();
|
|
|
+ assert(ret == GLFW_TRUE);
|
|
|
+ glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
|
|
|
+ glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 6);
|
|
|
+ glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
|
|
|
+ auto main_window = glfwCreateWindow(main_window_width, main_window_height, "RemoteAR", nullptr, nullptr);
|
|
|
+ assert(main_window != nullptr);
|
|
|
+ glfwMakeContextCurrent(main_window);
|
|
|
+ glfwSwapInterval(1);
|
|
|
+
|
|
|
+ // load opengl functions
|
|
|
+ auto version = gladLoadGL(glfwGetProcAddress);
|
|
|
+ assert(version > 0);
|
|
|
+ SPDLOG_INFO("Loaded OpenGL {}.{}", GLAD_VERSION_MAJOR(version), GLAD_VERSION_MINOR(version));
|
|
|
+
|
|
|
+ // setup imgui context
|
|
|
+ IMGUI_CHECKVERSION();
|
|
|
+ ImGui::CreateContext();
|
|
|
+ auto io = ImGui::GetIO();
|
|
|
+ io.ConfigFlags != ImGuiConfigFlags_NavEnableKeyboard;
|
|
|
+ ImGui::StyleColorsDark();
|
|
|
+ ImGui_ImplGlfw_InitForOpenGL(main_window, true);
|
|
|
+ ImGui_ImplOpenGL3_Init();
|
|
|
+
|
|
|
+ // main loop
|
|
|
+ while (!glfwWindowShouldClose(main_window)) {
|
|
|
+
|
|
|
+ glfwPollEvents();
|
|
|
+
|
|
|
+ ImGui_ImplOpenGL3_NewFrame();
|
|
|
+ ImGui_ImplGlfw_NewFrame();
|
|
|
+ ImGui::NewFrame();
|
|
|
+
|
|
|
+ ImGui::ShowDemoWindow();
|
|
|
+
|
|
|
+ ImGui::Render();
|
|
|
+ int frame_width, frame_height;
|
|
|
+ glfwGetFramebufferSize(main_window, &frame_width, &frame_height);
|
|
|
+ glViewport(0, 0, frame_width, frame_height);
|
|
|
+ glClear(GL_COLOR_BUFFER_BIT);
|
|
|
+ ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
|
|
|
+ glfwSwapBuffers(main_window);
|
|
|
+ }
|
|
|
+
|
|
|
+ // cleanup
|
|
|
+ ImGui_ImplOpenGL3_Shutdown();
|
|
|
+ ImGui_ImplGlfw_Shutdown();
|
|
|
+ ImGui::DestroyContext();
|
|
|
+
|
|
|
+ glfwDestroyWindow(main_window);
|
|
|
+ glfwTerminate();
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|