当有程序时,它由普通的c ++代码和opengl代码组成。 因此,c ++和opengl都被编译并链接到ELF。 并且,看起来他们都在CPU上运行。
为什么opengl代码在屏幕上绘制的能力比c ++代码更强?
答案 0 :(得分:4)
为什么opengl代码在屏幕上绘制的能力比c ++代码更强?
因为OpenGL只是向GPU发送绘图命令,然后执行批量工作。请注意,还有一些OpenGL实现不是GPU加速的,因此不会比在CPU上运行的其他软件光栅化器更快。
答案 1 :(得分:2)
除非你在谈论GLSL,否则“C ++代码”和“OpenGL代码”之间没有区别。它只是C或C ++,取决于你正在构建什么。 OpenGL是一个API,一个包含执行操作的函数的库。
您的代码调用OpenGL函数,这些函数在功能上与您可能调用的任何其他C ++函数没有区别。 C ++中的函数根据它们的实现方式做某事。
OpenGL函数使用GPU特定的结构告诉GPU要做什么。这就是OpenGL的用途:抽象出硬件的细节,以便您可以编写非硬件相关的代码。您调用OpenGL函数的代码应该适用于支持最小GL版本的任何OpenGL实现(如果您使用的话,还可以使用扩展)。
同样,std::fstream
抽象出Windows和Linux文件访问命令之间的差异。用户使用相同的API,但它在不同的操作系统上有不同的实现。