小编Pat*_*ick的帖子

什么是顶点阵列对象?

我今天刚开始从本教程开始学习OpenGL:http://openglbook.com/the-book/
我到了第2章,在那里画了一个三角形,我理解除了VAO之外的一切(这个首字母缩略词好吗?).本教程有以下代码:

glGenVertexArrays(1, &VaoId);
glBindVertexArray(VaoId);
Run Code Online (Sandbox Code Playgroud)

虽然我知道代码是必要的,但我不知道它的作用.虽然我从不使用VaoId(除了销毁它),但如果没有它,代码就无法运行.我假设这是因为它需要被绑定,但我不知道为什么.这个确切的代码是否只需要成为每个OpenGL程序的一部分?该教程将VAO解释为:

顶点数组对象(或VAO)是描述顶点属性如何存储在顶点缓冲区对象(或VBO)中的对象.这意味着VAO不是存储顶点数据的实际对象,而是顶点数据的描述符.顶点属性可以通过glVertexAttribPointer函数及其两个姐妹函数glVertexAttribIPointer和glVertexAttribLPointer来描述,我们将在下面探讨其中的第一个.

我不明白VAO如何描述顶点属性.我没有以任何方式描述它们.它是否从glVertexAttribPointer获取信息?我想这一定是它.VAO只是glVertexAttribPointer信息的目的地吗?

另外,我遵循的教程是否可以接受?有什么我应该注意的或更好的教程可以遵循?

opengl vbo vertex-array vao

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

Qyoto是一个可行的平台吗?

我真的没有听说过Qyoto.我的问题是,它仍然存在且使用效果好吗?在我的一个项目中使用它是否聪明,还是应该坚持使用另一种语言的gtk#或qt?目前有没有使用Qyoto的项目?

.net c# qt qyoto

5
推荐指数
2
解决办法
5712
查看次数

Boost :: Signals有什么意义?

首先,我是编程的绝对初学者,所以不要嘲笑我太多.
我见过的唯一信号是GUI工具包,GUI工具包都带有自己的信号.那么,Boost:信号甚至可以与这些GUI工具包一起使用吗?这是个好主意吗?信号有哪些其他应用?

c++ boost signals boost-signals boost-signals2

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

我应该使用KeyPressEvent或QAction来实现按键吗?

在Qt中,要么实现keyPressEvent或创建QAction并为其分配一个组合键,我就可以根据键盘进行操作.

通常首选哪种方法?

keyboard qt keyboard-events

3
推荐指数
1
解决办法
2503
查看次数

python程序如何检查自己的md5sum?

大约一年前我正在玩游戏.为了加快速度,我编辑了主要的.py文件并在一开始就添加了psyco.游戏跑得越来越快,但它不会让我发送我的分数.我进入了文件,它正在检查自己的md5sum.困惑我的部分是他们在文件中有md5.我的问题是,如何获取文件的md5与文件的总和,包括我还没有的md5.对我来说似乎有一个问题,但他们做到了.

希望我解释得那么好.例:

文件:Example.example

check md5 of Example.example
If md5 I just obtained == "###################################"
allow send score.
Run Code Online (Sandbox Code Playgroud)

python security md5 md5sum

3
推荐指数
1
解决办法
354
查看次数

为什么在调用string时会出现编译错误.在C#中选择?

在另一个问题(如何将数字拆分成单个数字?)中,他们Select在字符串上调用该方法.该网站还表明它是可能的.

但是,当我尝试使用在其中任何一个地方找到的代码示例执行此操作时,我收到编译错误.可能导致这种情况的原因,我如何Select在字符串上使用该方法?

.net c# string select

3
推荐指数
1
解决办法
177
查看次数

为什么这种递归比等效迭代快得多?

我多次被告知由于函数调用递归很慢,但在这段代码中,它似乎比迭代解决方案快得多.充其量,我通常期望编译器优化递归到迭代(看着程序集,似乎确实发生).

#include <iostream>

bool isDivisable(int x, int y)
{
    for (int i = y; i != 1; --i)
        if (x % i != 0)
            return false;
    return true;
}
bool isDivisableRec(int x, int y)
{
    if (y == 1)
        return true;
    return x % y == 0 && isDivisableRec(x, y-1);
}

int findSmallest()
{
    int x = 20;
    for (; !isDivisable(x,20); ++x);
    return x;
}

int main()
{
    std::cout << findSmallest() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

在这里汇编:https://gist.github.com/PatrickAupperle/2b56e16e9e5a6a9b251e

我很想知道这里发生了什么.我确信这是一些棘手的编译器优化,我可以惊讶地了解.

编辑:我刚刚意识到我忘了提到如果我使用递归版本,它运行大约0.25秒,迭代,大约.6. …

c++ recursion

3
推荐指数
1
解决办法
186
查看次数

整数不比较等于它的值

我有一段代码我正在尝试调试,这会产生奇怪的结果.一个非常明显包含值为6的整数,将false与文字6进行比较.
在我的代码中,此代码:

int allGreen = 0;
int index = 0;
while (ch->fb[index]->selection_color() == FL_GREEN) 
{
    ++allGreen;
    ++index;
}
std::cout << allGreen << std::endl;
std::cout << std::boolalpha << (allGreen == 6) << std::endl;
Run Code Online (Sandbox Code Playgroud)

产生输出:

6
false
Run Code Online (Sandbox Code Playgroud)

我在Ubuntu上使用g ++ 4.8.2进行编译.

怎么可能发生这种情况?

编辑:从条件中删除所有绿色无济于事.编辑2:索引和allGreen是相同的,如预期的那样.尽管两者都是6,但两者都不等于6.

c++ int comparison-operators

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

为什么我会收到此Stack Overflow异常?

我正在写一个俄罗斯方块克隆,这是我真正做过的最大的项目.在实现行删除代码时,我已经开始收到堆栈溢出异常.我认为这可能与我的大量收藏或Linq的低效率使用有关.以下是导致此问题的具体方法:

void MoveAllAboveDown(int row)
    {
        List<Block> newBlockList = new List<Block>();
        for (int rowCheck = row; rowCheck > _VertOffset; --rowCheck)
        {
            for (int i = _HorizOffset; i < _HorizOffset + _Width; ++i)
            {
                //If the spot above this is filled
                if (_blockList.Where(block => block.Contains(new Vector2(i, rowCheck - 1))).ToList().Count > 0)
                {
                    //insert block here
                    newBlockList.Add(new Block(new Vector2(i, rowCheck), new[,] { { true } }, Color.Black, _texture));
                }
                else
                {
                    var list = _blockList.Where(tempBlock => tempBlock.Contains(new Vector2(i, rowCheck - 1))).ToList();
                    if (list.Count …
Run Code Online (Sandbox Code Playgroud)

c# xna tetris xna-4.0

0
推荐指数
1
解决办法
1137
查看次数