<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

        實(shí)際的OpenGL庫的開發(fā)者通常是顯卡的生產(chǎn)商。你購買的顯卡所支持的OpenGL版本都為這個系列的顯卡專門開發(fā)的。可以用上次提到的OpenGL Extensions View來查看OpenGL版本,我的就是OpenGL4.3。

      之前選擇GLAD的時候,選擇OpenGL的核心模式(Core-profile)下進(jìn)行開發(fā)效率高、靈活而且開發(fā)者可以了解OpenGL的具體運(yùn)作。

      原先的立即渲染模式(Immediate mode,也就是固定渲染管線)效率低且不靈活雖然上手容易。

       

       1.   State Machine ——OpenGL的狀態(tài)通常被稱為上下文(Context)

      使用一系列變量描述OpenGL應(yīng)該如何去工作。

          更改上下文變量改變OpenGL狀態(tài)——設(shè)置選項,操作緩沖——使用當(dāng)前OpenGL上下文來渲染。

       

      2. Object ——一些選項的集合,它代表OpenGL狀態(tài)的一個子集

      unsigned int objectId = 0;// 創(chuàng)建對象
      glGenObject(1, &objectId);
      glBindObject(GL_WINDOW_TARGET, objectId);
      // 綁定對象至上下文// 設(shè)置當(dāng)前綁定到 GL_WINDOW_TARGET 的對象的一些選項
      glSetObjectOption(GL_WINDOW_TARGET, GL_OPTION_WINDOW_WIDTH, 800);
      glSetObjectOption(GL_WINDOW_TARGET, GL_OPTION_WINDOW_HEIGHT, 600);
      // 將上下文對象設(shè)為默認(rèn)
      glBindObject(GL_WINDOW_TARGET, 0);

       

      開始創(chuàng)建窗口

      1) 實(shí)例化GLFW窗口

          glfwInit();
      glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);

      glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); //OpenGL版本4.3

      //使用的是核心模式(Core-profile)

          glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

       

      2)   創(chuàng)建窗口

      GLFWwindow* window = 

      glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL);

      if (window == NULL)

      {

      std::cout << "Failed to create GLFW window" << std::endl;

      glfwTerminate();

      return -1;

      }

      glfwMakeContextCurrent(window);

      //創(chuàng)建完窗口我們就可以通知GLFW將我們窗口的上下文設(shè)置為當(dāng)前線程的主上下文

       

      3) 初始化GLAD ——管理OpenGL函數(shù)指針

      if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
      {
      std::cout << "Failed to initialize GLAD" << std::endl;
      return -1;
      }

      load系統(tǒng)相關(guān)的OpenGL函數(shù)指針地址的函數(shù)。GLFW給我們的是glfwGetProcAddress,它根據(jù)我們編譯的系統(tǒng)定義了正確的函數(shù)。

       

      4)視口(Viewport)

      將OpenGL中的位置坐標(biāo)轉(zhuǎn)換為你的屏幕坐標(biāo)。例如,OpenGL中的坐標(biāo)(-0.5, 0.5)有可能(最終)被映射為屏幕中的坐標(biāo)(200,450)。注意,處理過的OpenGL坐標(biāo)范圍只為-1到1,因此我們事實(shí)上將(-1到1)范圍內(nèi)的坐標(biāo)映射到(0, 800)和(0, 600)。  

      glViewport(0, 0, 800, 600);

      窗口注冊一個回調(diào)函數(shù)(Callback Function),它會在每次窗口大小被調(diào)整的時候被調(diào)用

      framebuffer_size_callback(GLFWwindow* window, int width, int height);
      glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);

      5)渲染循環(huán)(Render Loop)

      while(!glfwWindowShouldClose(window))
      {

      // 渲染指令

          glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
          glClear(GL_COLOR_BUFFER_BIT);

       

         // 檢查并調(diào)用事件,交換緩沖

      glfwSwapBuffers(window);

       glfwPollEvents();

      }

       

       

       

      posted on 2019-11-17 12:50  AmyBKLP  閱讀(329)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日本道不卡一二三区视频| 亚洲aⅴ男人的天堂在线观看| 精品一区二区三区不卡| 国产一区二区三区AV在线无码观看| 蜜臀av一区二区国产精品| 四虎国产精品永久在线下载| 国产成人精品一区二区三区| 久久久久久久久久久免费精品| 欧美怡春院一区二区三区| 成 人色 网 站 欧美大片在线观看| 欧美日韩国产综合草草| 国产成人av综合色| 午夜精品一区二区三区免费视频| 国产精品白浆无码流出| 亚洲一区二区三区激情视频| 日本夜爽爽一区二区三区| 久久成人国产精品免费软件| 色久综合色久综合色久综合| 成人亚欧欧美激情在线观看| 久久热在线视频精品视频| 亚洲成av人片在www鸭子| 91亚洲国产成人精品福利| 蜜臀av无码一区二区三区| 四虎在线播放亚洲成人| 欧美高清一区三区在线专区| 狠狠色狠狠色综合久久蜜芽| 门头沟区| 亚洲欧美自偷自拍视频图片| 最近中文字幕日韩有码| 丁香五月亚洲综合深深爱| 亚洲人妻精品中文字幕| 襄樊市| 亚洲欧洲日产国产 最新| 我国产码在线观看av哈哈哈网站| 无码国产精品一区二区免费虚拟vr| 四虎成人精品无码永久在线| 国产精成人品日日拍夜夜免费| 日韩精品区一区二区三vr| 国产精品高清一区二区三区| 2019国产精品青青草原| 国产日韩精品欧美一区喷水|