加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
scene_gles.h 1.31 KB
一键复制 编辑 原始数据 按行查看 历史
pengrui_2009 提交于 2021-03-08 21:57 . Feature:
#ifndef SCENE_GLES_H
#define SCENE_GLES_H
#include <string>
#include <QOpenGLShaderProgram>
#include <QOpenGLBuffer>
#include <QOpenGLVertexArrayObject>
#include <QOpenGLFunctions>
#include "modelloader.h"
#include "scenebase.h"
// OpenGL 2.1/OpenGL ES -- Inherit from QOpenGLFunctions to get OpenGL 2.1/OpenGL ES 2.0 functions
class Scene_GLES : public QOpenGLFunctions, public SceneBase
{
public:
Scene_GLES(QString filepath, ModelLoader::PathType pathType, QString texturePath="");
void initialize();
void resize(int w, int h);
void update();
void cleanup();
private:
void createShaderProgram( QString vShader, QString fShader);
void createBuffers();
void createAttributes();
void setupLightingAndMatrices();
void draw();
void drawNode(const Node *node, QMatrix4x4 objectMatrix);
void setMaterialUniforms(MaterialInfo &mater);
QOpenGLShaderProgram m_shaderProgram;
QOpenGLBuffer m_vertexBuffer;
QOpenGLBuffer m_normalBuffer;
QOpenGLBuffer m_textureUVBuffer;
QOpenGLBuffer m_indexBuffer;
QSharedPointer<Node> m_rootNode;
QMatrix4x4 m_projection, m_view, m_model;
QString m_filepath;
ModelLoader::PathType m_pathType;
QString m_texturePath;
LightInfo m_lightInfo;
MaterialInfo m_materialInfo;
bool m_error;
};
#endif // SCENE_H
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化