有什么区别
char* name
Run Code Online (Sandbox Code Playgroud)
它指向一个常量字符串文字,和
const char* name
Run Code Online (Sandbox Code Playgroud) 是否允许从main()创建egl上下文并从另一个线程渲染,假设上下文句柄从main()传递给线程的函数?
我正在堆栈上创建一个数组
static const int size = 10;
void foo() {
..
int array[size];
..
}
Run Code Online (Sandbox Code Playgroud)
但是,我得到编译错误:"表达式必须具有常量值",即使size是常量.我可以使用宏
#define SIZE (10)
Run Code Online (Sandbox Code Playgroud)
但我想知道为什么size
标记const
导致编译错误.
我正在使用glDrawArrays()绘制一个正方形,如下所示:
glTranslatef(0.0f,0.0f,-6.0f);
const GLfloat quadVertices[] = { -1.0f, 1.0f, 0.0f,
1.0f, 1.0f, 0.0f,
1.0f,-1.0f, 0.0f,
-1.0f,-1.0f, 0.0f
};
glVertexPointer(4, GL_FLOAT, 0, quadVertices);
glDrawArrays(GL_QUADS, 0, 4);
Run Code Online (Sandbox Code Playgroud)
输出不符合预期.
我正在使用glColor4f().令人惊讶的是,更改alpha,即第四个参数不会导致透明度发生任何变化.代码段是:
const GLfloat squareVertices[] = {
0.5, 0.5, 0.0,
-0.5, 0.5, 0.0,
0.5, -0.5, 0.0,
-0.5, -0.5, 0.0};
glEnableClientState (GL_VERTEX_ARRAY);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glColor4f (1.0, 0.0, 0.0, 0.5);
glLoadIdentity ();
glTranslatef(0, 0, -5);
glVertexPointer(3, GL_FLOAT, 0, squareVertices);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
Run Code Online (Sandbox Code Playgroud)
任何指向我可能出错的地方?
我正在使用在同一源文件中定义的宏:
#define MY_MACRO (a, b,...) (...)
Run Code Online (Sandbox Code Playgroud)
该宏稍后在文件中使用.
但是,编译器抱怨:
错误:未声明(首次使用此功能).
这真的很奇怪..我错过了一些明显的东西吗?
要访问STL迭代器,为什么我需要范围解析运算符,而不是点运算符?是因为迭代器是静态的,并且不属于特定的类实例吗?
vector<int>::iterator my_iterator;
Run Code Online (Sandbox Code Playgroud)
并不是
vector<int> numbers;
numbers.iterator;
Run Code Online (Sandbox Code Playgroud) 我正在一个方形窗口中绘制一个多边形.当我调整窗口大小时,例如通过全屏显示,纵横比会受到干扰.从参考文献中我发现了一种保留纵横比的方法.这是代码:
void reshape (int width, int height) {
float cx, halfWidth = width*0.5f;
float aspect = (float)width/(float)height;
glViewport (0, 0, (GLsizei) width, (GLsizei) height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(cx-halfWidth*aspect, cx+halfWidth*aspect, bottom, top, zNear, zFar);
glMatrixMode (GL_MODELVIEW);
}
Run Code Online (Sandbox Code Playgroud)
在这里,cx是X中zNear平面的眼睛空间中心.我要求有人可以解释我怎么能计算出来.我相信这应该是glFrustum()的前两个参数的平均值.我对吗?任何帮助将不胜感激.