小编Ice*_*man的帖子

153
推荐指数
5
解决办法
29万
查看次数

egl - 可以在线程之间共享上下文

是否允许从main()创建egl上下文并从另一个线程渲染,假设上下文句柄从main()传递给线程的函数?

multithreading egl

12
推荐指数
1
解决办法
9797
查看次数

数组定义 - 表达式必须具有常量值

我正在堆栈上创建一个数组

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导致编译错误.

c

9
推荐指数
1
解决办法
1万
查看次数

OpenGL - 使用glDrawArrays()绘制正方形

我正在使用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)

输出不符合预期.

opengl opengl-es

8
推荐指数
1
解决办法
2万
查看次数

glColor4f() - alpha值的影响

我正在使用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)

任何指向我可能出错的地方?

c opengl opengl-es

8
推荐指数
1
解决办法
2万
查看次数

C - 为什么只有char数组null终止?

为什么char数组需要以NULL结尾?例如,为什么int数组不需要在末尾有分隔符?

c string

8
推荐指数
2
解决办法
6609
查看次数

编译器在宏中抱怨未声明的变量

我正在使用在同一源文件中定义的宏:

#define MY_MACRO (a, b,...) (...)
Run Code Online (Sandbox Code Playgroud)

该宏稍后在文件中使用.

但是,编译器抱怨:

错误:未声明(首次使用此功能).

这真的很奇怪..我错过了一些明显的东西吗?

c

7
推荐指数
2
解决办法
2085
查看次数

STL - 为什么使用范围解析运算符作为迭代器

要访问STL迭代器,为什么我需要范围解析运算符,而不是点运算符?是因为迭代器是静态的,并且不属于特定的类实例吗?

vector<int>::iterator my_iterator;
Run Code Online (Sandbox Code Playgroud)

并不是

vector<int> numbers;
numbers.iterator;
Run Code Online (Sandbox Code Playgroud)

c++ stl

6
推荐指数
1
解决办法
916
查看次数

OpenGL - 在窗口大小调整时保持宽高比

我正在一个方形窗口中绘制一个多边形.当我调整窗口大小时,例如通过全屏显示,纵横比会受到干扰.从参考文献中我发现了一种保留纵横比的方法.这是代码:

    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()的前两个参数的平均值.我对吗?任何帮助将不胜感激.

c opengl

4
推荐指数
1
解决办法
3316
查看次数

检查条件的语义

如果我有这样的条件:

if (X && Y) {}
Run Code Online (Sandbox Code Playgroud)

编译器会检查Y是否X为false?它是编译器依赖的吗?

c

4
推荐指数
2
解决办法
173
查看次数

标签 统计

c ×7

opengl ×3

opengl-es ×2

c++ ×1

const ×1

egl ×1

multithreading ×1

pointers ×1

stl ×1

string ×1