我几天前开始从这个网站学习 opengl3学习 OpenGL 并且由于在 webgl 中的先验知识,这对我来说似乎很容易。
因此,我决定在 opengl 中创建一个基本的俄罗斯方块克隆,但我似乎无法理解为什么我会遇到某个错误。
// tetrimino.h
#ifndef __TETRIMINO_H__
#define __TETRIMINO_H__
#include <glad/glad.h>
class Tetrimino
{
public:
Tetrimino();
~Tetrimino();
private:
float vertices[8];
int indices[6];
unsigned int vao, vbo;
};
#endif
// tetrimino.cpp
#include "tetrimino.h"
Tetrimino::Tetrimino()
{
// initialise vertices
vertices[0] = 0.0f;
vertices[1] = 0.0f;
vertices[2] = 0.0f;
vertices[3] = 1.0f;
vertices[4] = 1.0f;
vertices[5] = 1.0f;
vertices[6] = 1.0f;
vertices[7] = 0.0f;
// initialise vertexArrayObjects and buffers
glGenVertexArrays(1, &vao);
glGenBuffers(1, &vbo);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBindVertexArray(vao);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(float), (void*)0);
}
Tetrimino::~Tetrimino(){}
错误似乎在某处
glGenBuffers(1, &vbo);
我只是不明白这个错误的原因是什么。这是VS2022社区版的截图
我已经尝试让 vbo 成为构造函数中的局部变量,但它仍然行不通