c++教程 glfw包含了opengl嗎?
glfw包含了opengl嗎?不包括在內(nèi)。Glfw在OpenGL中幫助您創(chuàng)建一個(gè)簡單的窗口。類似于glut/freeglut。但是OpenGL是被驅(qū)動(dòng)的。只要你安裝了圖形驅(qū)動(dòng)程序,就會(huì)有OpenGL。
glfw包含了opengl嗎?
不包括在內(nèi)。Glfw在OpenGL中幫助您創(chuàng)建一個(gè)簡單的窗口。類似于glut/freeglut。但是OpenGL是被驅(qū)動(dòng)的。只要你安裝了圖形驅(qū)動(dòng)程序,就會(huì)有OpenGL。直接用就行了。一般來說,如果用于開發(fā),glfw、glew和OpenGL就足夠了。Glew用于智能地加載許多OpenGL擴(kuò)展。編譯時(shí),首先加載OpenGL,然后加載glew,最后加載glfw。如果是windows,您可能需要gdi32。$g-墻-gmain.cpp文件-Lglfw-lglew32-lopengl32等。
GLFW庫在多線程中如何分別打開窗口?
OpenGL本身不是API,只是一個(gè)規(guī)范,由Khronos制定和維護(hù)。OpenGL嚴(yán)格規(guī)定了每個(gè)函數(shù)應(yīng)該如何執(zhí)行以及它們應(yīng)該如何返回。至于如何實(shí)現(xiàn)其中的每個(gè)功能,將由OpenGL庫的開發(fā)人員來決定。因?yàn)镺penGL規(guī)范沒有指定實(shí)現(xiàn)的細(xì)節(jié),所以允許特定的OpenGL庫使用不同的實(shí)現(xiàn),只要它們的函數(shù)和結(jié)果與規(guī)范匹配。早期OpenGL采用即時(shí)渲染模式(即固定的渲染管道),繪制圖形非常方便。OpenGL的大部分函數(shù)都被庫隱藏,開發(fā)人員很少控制OpenGL的計(jì)算方式。開發(fā)人員需要更多的靈活性。隨著時(shí)間的推移,規(guī)范變得更加靈活,開發(fā)人員對繪圖細(xì)節(jié)有了更多的控制。即時(shí)渲染模式非常容易使用和理解,但效率太低。因此,從opengl3.2開始,規(guī)范開始放棄即時(shí)渲染模式,引入核心模式,徹底去除了原有的功能。在我們能夠繪制出優(yōu)秀的效果之前,首先要做的是創(chuàng)建一個(gè)OpenGL上下文和一個(gè)用于顯示的窗口。但是,每個(gè)系統(tǒng)上的這些操作是不同的。OpenGL有目的地抽象這些操作。這意味著我們必須自己創(chuàng)建窗口、定義OpenGL上下文和處理用戶輸入。幸運(yùn)的是,有些庫已經(jīng)提供了我們需要的功能,其中一些是專門為OpenGL提供的。這些庫為我們節(jié)省了編寫平臺(tái)相關(guān)代碼的時(shí)間,并為我們提供了一個(gè)要呈現(xiàn)的窗口和上下文。最流行的庫是glut、SDL、sfml和glfw。Glfw是一個(gè)專門針對OpenGL的C語言庫,它提供了一些渲染
建議您查看以下內(nèi)容:
learnponggl CN。另外,讓我們了解一下glad、glew、glfw和freeglut之間的區(qū)別:
glew(OpenGL擴(kuò)展Wrangler庫)是底層OpenGL接口的封裝,它可以使代碼跨平臺(tái)。
Glad與glew具有相同的功能,因此可視為升級(jí)版。
Freeglut(OpenGL實(shí)用工具包)主要用于創(chuàng)建OpenGL上下文、接收一些鼠標(biāo)和鍵盤事件等。
Glfw(圖形庫框架)是freeglut的升級(jí)版本,其功能基本相同。
一般來說,glad和glfw一起使用。例如,我在上面發(fā)布的網(wǎng)站是。
Glew和freeglut一起使用,例如上面的OpenGL紅皮書示例。