2011-12-29 117 views
0

當有程序時,它由普通的C++代碼和opengl代碼組成。因此,C++和opengl都被編譯並鏈接到ELF。而且,看起來它們都運行在CPU上。是否在GPU上運行opengl代碼?

爲什麼opengl代碼比C++代碼在屏幕上繪畫更強大?

回答

4

爲什麼opengl代碼比C++代碼更能在屏幕上繪畫?

因爲OpenGL只是向GPU發送繪圖命令,GPU正在做大量的工作。請注意,也有OpenGL實現不是GPU加速的,因此不會比運行在CPU上的其他軟件光柵器更快。

2

除非你在談論GLSL,否則「C++代碼」和「OpenGL代碼」之間沒有區別。這只是C或C++,取決於你正在構建的東西。 OpenGL是一個API,是一個包含執行任務的函數的庫。

您的代碼調用OpenGL函數,它的功能與您可能調用的任何其他C++函數沒有區別。 C++中的函數根據它們的實現方式做了一些事情。

OpenGL函數使用GPU特定的結構告訴GPU該做什麼。這就是OpenGL的作用:抽象出硬件的細節,以便編寫與硬件無關的代碼。調用OpenGL函數的代碼應該可以在任何支持最低GL版本的OpenGL實現上工作(如果使用這些擴展,則可以使用擴展)。

同樣,std::fstream也提取了Windows和Linux文件訪問命令之間的差異。用戶使用相同的API,但在不同的操作系統上有不同的實現。

+0

現在我有兩個問題: – gemfield 2011-12-29 03:02:15

+1

對於兩個極小的值,我想。 – genpfault 2011-12-29 03:32:54

相關問題