• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • OpenGL學習(一)環境搭建+helloworld

    標簽: OpenGL

    今天完成了環境的搭建,參考博客在這里:

    https://blog.csdn.net/qiangbizhi3622/article/details/79467994

    沒有一次成功,遇見了一個巨坑:

    既然是vs2019,就要注意win32,不然報錯很崩潰的。

    又填入了如下代碼的確能做:

    #include <iostream>
    #include <glad/glad.h>
    #include <GLFW/glfw3.h>
    
    void framebuffer_size_callback(GLFWwindow* window, int width, int height);
    void processInput(GLFWwindow *window);
    const unsigned int SCR_WIDTH = 600;
    const unsigned int SCR_HEIGHT = 500;
    int main(int argc, const char * argv[]) {
        // insert code here...
        std::cout << "Hello, World!\n";
        glfwInit();//初始化GLFW
        //使用opengl 3.3版本,
        //我們將主版本號(Major)和次版本號(Minor)都設為3。我們同樣明確告訴GLFW我們使用的是核心模式(Core-profile)。
        glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
        glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
        glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
        //如果是mac 就把這段編輯進去
        #ifdef __APPLE__
            glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // uncomment this statement to fix compilation on OS X
        #endif
        //創建window
        GLFWwindow* window = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, "openGL第一個窗口", NULL, NULL);
        if(window == NULL){
            std::cout << "創建失敗" << std::endl;
            glfwTerminate();
            return -1;
        }
        glfwMakeContextCurrent(window);
        glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
        if(!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)){
            std::cout << "Failed !" << std::endl;
            return -1;
        }
        
    //    循環渲染
        while (!glfwWindowShouldClose(window))
        {
            // input監聽輸入的內容
            processInput(window);
    
            glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
            glClear(GL_COLOR_BUFFER_BIT);
            
            glfwSwapBuffers(window);
            glfwPollEvents();
        }
        //直接終止glfw
        glfwTerminate();
        return 0;
    }
    
    //窗口大小改變時候觸發
    void framebuffer_size_callback(GLFWwindow* window, int width, int height)
    {
        // make sure the viewport matches the new window dimensions; note that width and
        // height will be significantly larger than specified on retina displays.
        glViewport(0, 0, width, height);
    }
    
    void processInput(GLFWwindow *window)
    {
        if(glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
            glfwSetWindowShouldClose(window, true);
    }
    

     

    版權聲明:本文為HeroIsUseless原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/HeroIsUseless/article/details/105897551

    智能推薦

    Android OpenGL ES 開發(一)— 環境搭建

      我的視頻課程(基礎):《(NDK)FFmpeg打造Android萬能音頻播放器》 我的視頻課程(進階):《(NDK)FFmpeg打造Android視頻播放器》 我的視頻課程(編碼直播推流):《Android視頻編碼和直播推流》          對于Opengl/sl/cv/...系列相信大家也不陌生,我在前面博客...

    【由淺入深OpenGL】一:Visual Studio下搭建OpenGL開發環境

    萬事開頭難! 理論與實踐結合才能產生價值,很多人學習OpengGL碰到的第一件事情就是配置環境 首先需要下載GLFW 與GLEW包,建議都下載32位的 http://www.glfw.org/ http://glew.sourceforge.net/ 1.首先打開Visual Studio創建項目工程,現在很多時候如果我們選擇創建控制臺程序就會生成stdafx.文件等比較不必要的東西,所以我們直接...

    SpringBoot學習一:環境及HelloWorld

    開始學習神秘的springboot,通過helloworld學習,感覺并不難,相比springmvc,簡化了很多配置,myeclipse對springboot有很好的支持。 首先,需要安裝springboot的插件。目錄為help->Intall from Catalog->propular 點擊安裝。安裝完成后,重啟Myeclipse 注:為了下載安裝,使用阿里云maven鏡像,具體...

    rocketMQ學習筆記(一) 單機版rocketMQ環境搭建和helloWorld

    一、簡介官方簡介:     l  RocketMQ是一款分布式、隊列模型的消息中間件,具有以下特點:     l  能夠保證嚴格的消息順序     l  提供豐富的消息拉取模式     l  高效的訂...

    Springboot 環境搭建-helloworld

    更多相關鏈接:https://zhuanlan.zhihu.com/p/20643322 Springboot有逐漸取代springmvc的趨勢,越來越多的項目開始使用springboot,對于初次使用的人來說,先搭建個helloworld出來,算是初始配置。 step1: 【File】->【New】->ma【maven project】,選中create a simple proje...

    猜你喜歡

    2018/7/21--OpenGL學習筆記(一)環境搭建/create window

    開篇的話:僅僅是作者的學習筆記!筆記!記! OpenGL 在開始這段旅程之前我們先了解一下OpenGL到底是什么。一般它被認為是一個API(Application Programming Interface, 應用程序編程接口),包含了一系列可以操作圖形、圖像的函數。然而,OpenGL本身并不是一個API,它僅僅是一個由Khronos組織制定并維護的規范(Specification)。 OpenG...

    kotlin語言學習01 ——環境搭建helloworld

    kotlin語言學習01 ——環境搭建helloworld 1、新建kotlin工程 使用idea新建項目,選擇左側的Kotlin,在選擇 JVM|IDEA 表示基于JVM開發的kotlin。 填寫項目信息,IDEA會自動配置資源內容,直接創建即可。 2、kotlin的工作空間 3、新建kotlin 創建完成生成了后綴名為kt的文件 4、IDEA會自動檢測kotlin版本 ...

    kotlin學習筆記(1) 搭建環境和helloworld

    讀書學習筆記《KOTLIN 開發快速入門與實戰》 通過把書中的內容 復述一遍,把代碼敲一遍,達到復習效果 Kotlin是基于JVM 的編程語言,由JetBrains 公司研發和維護,可以將它編譯成Java 字節碼,也可以編譯成JavaScript ,方便再沒有JVM 的設備上運行。 在windows 操作系統下配置Kotlin 環境 流程如下: 下載JDK 安裝JDK 配置JDK 環境變量 檢查J...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    精品国产乱码久久久久久蜜桃不卡