int main(int argc, char *argv[]) { glfwInit(); glfwWindowHint(GLFW_VISIBLE, GL_FALSE); glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0); window = glfwCreateWindow(300, 300, argv[0], NULL, NULL); if (!window) { return EXIT_SKIP; } glfwMakeContextCurrent(window); if (!gladLoadGLES2Loader((GLADloadproc) glfwGetProcAddress)) { return EXIT_FAILURE; } assert(GLAD_GL_ES_VERSION_2_0); assert(GLAD_GL_EXT_debug_marker == glfwExtensionSupported("GL_EXT_debug_marker")); init(); reshape(); draw(); glfwDestroyWindow(window); glfwTerminate(); return 0; }
int guigl_main(duc *duc, int argc, char *argv[]) { char *path = "."; if(argc > 0) path = argv[0]; fuzz = opt_fuzz; if(opt_palette) { char c = tolower(opt_palette[0]); if(c == 's') palette = DUC_GRAPH_PALETTE_SIZE; if(c == 'r') palette = DUC_GRAPH_PALETTE_RAINBOW; if(c == 'g') palette = DUC_GRAPH_PALETTE_GREYSCALE; if(c == 'm') palette = DUC_GRAPH_PALETTE_MONOCHROME; if(c == 'c') palette = DUC_GRAPH_PALETTE_CLASSIC; } int r = duc_open(duc, opt_database, DUC_OPEN_RO); if(r != DUC_OK) { duc_log(duc, DUC_LOG_FTL, "%s", duc_strerror(duc)); return -1; } dir = duc_dir_open(duc, path); if(dir == NULL) { duc_log(duc, DUC_LOG_FTL, "%s", duc_strerror(duc)); return -1; } if(!glfwInit()) { duc_log(duc, DUC_LOG_FTL, "Error initializen glfw"); return -1; } glfwWindowHint(GLFW_SAMPLES, 4); GLFWwindow* window = window = glfwCreateWindow(640, 480, "Duc", NULL, NULL);; if(window == NULL) { duc_log(duc, DUC_LOG_FTL, "Error creating glfw window"); glfwTerminate(); return -1; } glfwMakeContextCurrent(window); gladLoadGLES2Loader((GLADloadproc) glfwGetProcAddress); glfwGetFramebufferSize(window, &win_w, &win_h); double font_scale = 1.0; sc2fb(window, &font_scale, NULL); graph = duc_graph_new_opengl(duc, font_scale); glfwSetKeyCallback(window, cb_keyboard); glfwSetFramebufferSizeCallback(window, cb_winsize); glfwSetMouseButtonCallback(window, cb_mouse_button); glfwSetCursorPosCallback(window, cb_mouse_motion); glfwSetScrollCallback(window, cb_scroll); while (!glfwWindowShouldClose(window)) { draw(window); glfwWaitEvents(); } glfwTerminate(); return 0; }