zoukankan      html  css  js  c++  java
  • Base Env

    #include <imgui.h>
    #include <imgui_impl_glfw_gl3.h>
    #include <cstdio>
    #include <cmath>
    #include <glad/glad.h>
    #include <GLFW/glfw3.h>
    
    static void error_callback(int error, const char* description)
    {
        fprintf(stderr, "Error %d: %s
    ", error, description);
    }
    
    
    void framebuffer_size_callback(GLFWwindow* window, int width, int height)
    {
        glViewport(0, 0, width, height);
    }
    
    void ShowFPS()
    {
        ImGui::SetNextWindowSize(ImVec2(300, 30), ImGuiCond_Appearing);
        ImGui::SetNextWindowPos(ImVec2(0, 0), ImGuiCond_Appearing);
        ImGui::Begin("", 0,
            ImGuiWindowFlags_NoTitleBar |
            ImGuiWindowFlags_NoResize |
            ImGuiWindowFlags_NoMove);
        ImGui::Text("%.2f ms since last frame (%.1f FPS)",
            ImGui::GetIO().DeltaTime * 1000,
            ImGui::GetIO().Framerate);
        ImGui::End();
    }
    
    void IMGUI_InitialUI( GLFWwindow* window)
    {
        // Setup ImGui binding
        ImGui_ImplGlfwGL3_Init(window, true);
    
        // Load Fonts
        ImGuiIO& io = ImGui::GetIO();
        io.Fonts->AddFontFromFileTTF("../res/font/arialunicodems.ttf", 18.0f,NULL,io.Fonts->GetGlyphRangesChinese());
    }
    
    void IMGUI_SetUI()
    {
        ImGui_ImplGlfwGL3_NewFrame();
        ShowFPS();
    }
    
    void IMGUI_RenderUI()
    {
        ImGui::Render();
    }
    
    void IMGUI_CleanUpUI()
    {
        ImGui_ImplGlfwGL3_Shutdown();
    }
    
    int main()
    {
        glfwSetErrorCallback(error_callback);
        if (!glfwInit())
            return 1;
        glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
        glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
        glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    
        GLFWwindow* window = glfwCreateWindow(1280, 720, "GL March", NULL, NULL);
    
        glfwMakeContextCurrent(window);
        glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
    
        //glfwSwapInterval(1); // Enable vsync
    
        if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
            return -1;
    
        IMGUI_InitialUI(window);
    
        double PreviousTime = 0.0;
        double CurrentTime = 0.0;
        double DeltaTime = 0.0;
    
        while (!glfwWindowShouldClose(window))
        {
            glfwPollEvents();
            IMGUI_SetUI();
            PreviousTime = CurrentTime;
            CurrentTime = glfwGetTime();
            DeltaTime = CurrentTime - PreviousTime;
            
            glClearColor(sin(CurrentTime),cos(tan(PreviousTime)), sin(tan(CurrentTime)), 1);
    
            glClear(GL_COLOR_BUFFER_BIT);
    
            IMGUI_RenderUI();
            glfwSwapBuffers(window);
        }
    
        IMGUI_CleanUpUI();
        glfwTerminate();
        return 0;
    }

  • 相关阅读:
    浅析人脸检测之Haar分类器方法
    python调用网络摄像机
    jvm常用优化方案和方法
    jvm优化-垃圾收集器的类型
    jvm调优-垃圾回收算法
    JVM调优-java虚拟机内存模型及参数设置
    java NIO-Buffer
    java NIO-Channel
    java权限设置文件-java.policy
    java安全-安全管理器
  • 原文地址:https://www.cnblogs.com/Searchor/p/7766073.html
Copyright © 2011-2022 走看看