所以,我搜索了很多opengl 3. +教程,都包含着色器(GLSL 330核心).然而,我没有支持这些较新的GLSL实现的显卡,要么我必须更新我的驱动程序,但我仍然不确定我的卡是否本质上能够支持它.
目前我的openGL版本是3.1,我在Windows上用C++创建了一个具有向后兼容性的现代上下文.我的GLSL版本是1.30通过NVIDIA Cg编译器(完整定义)和GLSL 1.30 - >版本130.
问题是:版本130完全基于传统的opengl管道,因为它包含viewmatrix,modelmatrix等内容.那么当我在我的客户端应用程序(OpenGL 3+)中使用核心功能时,我应该如何使用它们呢?
这真是令人困惑,给我具体的例子.
此外,我希望我的应用能够在大多数OpenGL实现上运行,那么你能告诉我传统GLSL和现代GLSL之间的边界在哪里吗?GLSL 300是现代GLSL,与旧版GLSL版本的OpenGL 3. +有兼容性吗?
这是一个关于C++逻辑运算符||,&&的非常详细的问题.我在我的代码中使用它们,但我怀疑这段代码:
bool filluppointer(int*sth);
if (filluppointer(&pointer) || filluppointer2(&pointer))
return;
Run Code Online (Sandbox Code Playgroud)
如果发生了某些事情,filluppointer会返回true,所以并非总是如此.我的问题是,如果第一个函数返回true,那么if块中的第二个函数会被执行吗?|| 等于OR运算符,因此根据规范,两个函数连续执行,然后比较bool.我只想创建一个结构,当遇到第一个真正的函数时,整个if结构返回,然后停止然后关键是因为我想要指针中的特定值.之后执行另一个函数将改变值(不是在这里,而是在我的实际代码中).