当前位置:网站首页>02 -- QT OpenGL drawing triangle
02 -- QT OpenGL drawing triangle
2022-07-03 19:19:00 【Qingsong 0527】
qmyopenglwidget.h
#ifndef QMYOPENGLWIDGET_H
#define QMYOPENGLWIDGET_H
#include <QWidget>
#include <QOpenGLWidget>
#include <QOpenGLFunctions_3_3_Core>
#include <QOpenGLShaderProgram>
class QMyOpenglWidget : public QOpenGLWidget, QOpenGLFunctions_3_3_Core
{
Q_OBJECT
public:
explicit QMyOpenglWidget(QWidget* parent = nullptr);
protected:
virtual void initializeGL();
virtual void resizeGL(int w, int h);
virtual void paintGL();
public:
void cretaeShader();
private:
unsigned int vao1;
QOpenGLShaderProgram program;
signals:
public slots:
};
#endif // QMYOPENGLWIDGET_H
qmyopenglwidget.cpp
#include "qmyopenglwidget.h"
QMyOpenglWidget::QMyOpenglWidget(QWidget* parent):QOpenGLWidget(parent)
{
}
void QMyOpenglWidget::initializeGL()
{
initializeOpenGLFunctions();
glGenVertexArrays(1, &vao1);
unsigned int vbo1;
glGenBuffers(1, &vbo1);
glBindVertexArray(vao1);
glBindBuffer(GL_ARRAY_BUFFER, vbo1);
float vertices[] = {
-1.0, 0, 0,
1.0, 0, 0,
0, 1.0f, 0
};
// Is currently bound to target Create a new data store for the buffer object //
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
// Tell the graphics card how to parse the attribute value in the buffer
glVertexAttribPointer(0, 3, GL_FLOAT, FALSE, 3*sizeof (GL_FLOAT), nullptr);
// Turn on VAO The first attribute of Management
glEnableVertexAttribArray(0);
cretaeShader();
}
void QMyOpenglWidget::resizeGL(int w, int h)
{
}
void QMyOpenglWidget::paintGL()
{
glClearColor(0.2f, 0.2f, 0.1f, 0.1f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBindVertexArray(vao1);
glDrawArrays(GL_TRIANGLES, 0, 3);
update();
}
void QMyOpenglWidget::cretaeShader()
{
program.addShaderFromSourceFile(QOpenGLShader::Vertex, ":/shader/vertex.vert");
program.addShaderFromSourceFile(QOpenGLShader::Fragment, ":/shader/frag.frag");
program.bind();
program.link();
}
vertex.vert
#version 330 core
in vec3 pos;
out vec3 fcolors;
void main(void)
{
gl_Position = vec4(pos, 1.0f);
}
frag.frag
#version 330 core
out vec4 FragColor; // Clip shader output
void main(void)
{
FragColor = vec4(0.5, 0.8, 0.1, 1.0);
}

边栏推荐
- Record the errors reported when running fluent in the simulator
- FBI警告:有人利用AI换脸冒充他人身份进行远程面试
- 【光学】基于matlab介电常数计算【含Matlab源码 1926期】
- 【LeetCode】【SQL】刷题笔记
- Zhang Fei hardware 90 day learning notes - personal record of day 3, please see my personal profile / homepage for the complete
- Ctrip will implement a 3+2 work system in March, with 3 days on duty and 2 days at home every week
- Record: MySQL changes the time zone
- Summary of composition materials for 2020 high-frequency examination center of educational resources
- [leetcode] [SQL] notes
- 第一章:求所有阶乘和数,大奖赛现场统分程序设计,三位阶乘和数,图形点扫描,递归求n的阶乘n!,求n的阶乘n!,舍罕王失算
猜你喜欢

These problems should be paid attention to in the production of enterprise promotional videos

SSM整合-前后台协议联调(列表功能、添加功能、添加功能状态处理、修改功能、删除功能)

Ctrip will implement a 3+2 work system in March, with 3 days on duty and 2 days at home every week
![[water quality prediction] water quality prediction based on MATLAB Fuzzy Neural Network [including Matlab source code 1923]](/img/aa/9980acc9839f067202d46faabbf029.png)
[water quality prediction] water quality prediction based on MATLAB Fuzzy Neural Network [including Matlab source code 1923]

第一章:三位阶乘和数,图形点扫描

【光学】基于matlab介电常数计算【含Matlab源码 1926期】

DriveSeg:动态驾驶场景分割数据集

Using the visualization results, click to appear the corresponding sentence
![第二章:基于分解的求水仙花数,基于组合的求水仙花数, 兰德尔数,求[x,y]内的守形数,探求n位守形数,递推探索n位逐位整除数](/img/c5/0081689817700770f6210d50ec4e1f.png)
第二章:基于分解的求水仙花数,基于组合的求水仙花数, 兰德尔数,求[x,y]内的守形数,探求n位守形数,递推探索n位逐位整除数

FBI warning: some people use AI to disguise themselves as others for remote interview
随机推荐
【Proteus仿真】用24C04与1602LCD设计的简易加密电子密码锁
[academic related] how to find the innovation of top papers? Chinese universities won the CVPR Best Student Thesis Award for the first time
FBI警告:有人利用AI换脸冒充他人身份进行远程面试
Sentinel source code analysis part II - sentinel dashboard console startup and configuration
P3402 persistent and searchable
Scrapy爬虫框架
Find the median of two positive arrays
Record: pymysql is used in pycharm to connect to the database
Zhang Fei hardware 90 day learning notes - personal record on day 6. Please see my personal profile / homepage for the complete record
Differential constrained SPFA
Day_ 18 IO stream system
QT -- qfile file read / write operation
cipher
利用可视化结果,点击出现对应的句子
Integrated easy to pay secondary domain name distribution system
第一章:递归求n的阶乘n!
[optics] dielectric constant calculation based on MATLAB [including Matlab source code 1926]
High concurrency Architecture - read write separation
Sustainable service business models
__ Weak and__ The difference between blocks