Fix compile time errors

This commit is contained in:
Linloir 2022-12-13 09:56:34 +08:00
parent 7ce0a4e27d
commit b5e5b4cfa9
No known key found for this signature in database
GPG Key ID: 58EEB209A0F2C366
6 changed files with 23 additions and 18 deletions

View File

@ -3,6 +3,7 @@
#include <vector>
#include "utils.h"
#include "logger.h"
class ElementBufferObject
{

View File

@ -13,7 +13,7 @@ private:
std::vector<unsigned int> _indices;
std::vector<Texture> _textures;
VertexArrayObject _vao;
VertexArrayObject _vao = VertexArrayObject::empty();
public:
Mesh(const std::vector<Vertex>& vertices, const std::vector<unsigned int>& indices, const std::vector<Texture>& textures);

View File

@ -46,6 +46,19 @@ void SceneViewer::initializeGL() {
_vao.ensureInitialized();
Logger::info("Vertex Array Object initialized");
vector<Vertex> vertices = {
{ { -0.5f, -0.5f, 0.0f } },
{ { 0.5f, -0.5f, 0.0f } },
{ { 0.0f, 0.5f, 0.0f } }
};
VertexBufferObject vbo(vertices);
Logger::info("Vertex Buffer Object initialized");
_vao.bindVertexBufferObject(vbo);
_vao.setVertexAttributePointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), 0);
_vao.enableVertexAttribute(0);
Logger::info("Vertex Buffer Object bound to Vertex Array Object");
_shaderProgram.ensureInitialized();
Logger::info("Shader Program initialized");
@ -53,7 +66,9 @@ void SceneViewer::initializeGL() {
VertexShader vertexShader("./temp/shaders/vertexshader.vs");
FragmentShader fragmentShader("./temp/shaders/fragmentshader.fs");
_shaderProgram.attachShader(vertexShader);
_shaderProgram.attachShader(fragmentShader);
vertexShader.dispose();
fragmentShader.dispose();
}
void SceneViewer::resizeGL(int w, int h) {
@ -63,20 +78,7 @@ void SceneViewer::resizeGL(int w, int h) {
void SceneViewer::paintGL() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
vector<Vertex> vertices = {
{ { -0.5f, -0.5f, 0.0f } },
{ { 0.5f, -0.5f, 0.0f } },
{ { 0.0f, 0.5f, 0.0f } }
};
VertexBufferObject vbo(vertices);
VertexArrayObject vao(vbo);
vao.setVertexAttributePointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), 0);
vao.enableVertexAttribute(0);
VertexShader vertexShader("./temp/shaders/vertexshader.vs");
FragmentShader fragmentShader("./temp/shaders/fragmentshader.fs");
ShaderProgram shaderProgram(vertexShader, fragmentShader);
shaderProgram.bind();
vao.bind();
_vao.bind();
_shaderProgram.bind();
glDrawArrays(GL_TRIANGLES, 0, 3);
}

View File

@ -5,6 +5,7 @@
#include <GLM/glm.hpp>
#include "utils.h"
#include "logger.h"
class Shader {
protected:

View File

@ -20,7 +20,7 @@ VertexBufferObject::VertexBufferObject(const std::vector<Vertex>& vertices) {
}
void VertexBufferObject::setBuffer(const std::vector<Vertex>& vertices) {
if (id == 0) {
if (_id == 0) {
Logger::error("Try to bind buffer to an uninitialized vertex buffer object");
return;
}

View File

@ -4,6 +4,7 @@
#include "vertex.h"
#include "utils.h"
#include "logger.h"
class VertexBufferObject {
public: