我正在尝试使用QOpenGLWidget在Qt中使用OpenGL,但我很难找到任何相关的例子.我是OpenGL的新手,所以我正在努力学习如何使用它,但我发现的教程似乎并不适用于QOpenGLWidget.现在,我想做的就是渲染一个三角形.
这是我到目前为止所拥有的.
标题:
namespace Ui {
class Widget;
}
class Widget : public QOpenGLWidget, protected QOpenGLFunctions
{
public:
explicit Widget(QWidget *parent = 0);
~Widget();
protected:
void initializeGL();
void resizeGL(int, int);
void paintGL();
private:
Ui::Widget *ui;
};
Run Code Online (Sandbox Code Playgroud)
类:
Widget::Widget(QWidget *parent) :
QOpenGLWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
}
void Widget::initializeGL()
{
// Set up the rendering context, load shaders and other resources, etc.:
initializeOpenGLFunctions();
glClearColor(0.1f, 0.1f, 0.1f, 1.0f);
}
void Widget::resizeGL(int w, int h)
{
// Update projection matrix and other size-related …Run Code Online (Sandbox Code Playgroud) 如果我在C/C++中编写以下代码:
using namespace std::chrono;
auto time = high_resolution_clock::now();
unsigned long long foo = time.time_since_epoch().count();
unsigned bar = foo;
Run Code Online (Sandbox Code Playgroud)
在转换为unsigned int时会丢弃哪些foo?有什么方法可以强制只保留最低有效位吗?
或者,是否有一种简单的方法将foo散列为unsigned int大小?(这是首选,但我在初始化列表中执行所有这些操作.)
编辑:刚刚意识到保留最低有效位仍然可以允许循环.我猜哈希是我当时的目标.
第二次编辑:为了澄清我在评论中回复的内容,我在循环中播种std :: default_random_engine,并且不希望溢出导致种子值重复.我正在寻找一种简单的方法来将unsigned long long哈希到unsigned int.