TestTriangle

This commit is contained in:
2026-02-04 09:29:15 -06:00
parent e67df40233
commit 5ab345460c
2 changed files with 14 additions and 9 deletions

View File

@@ -37,17 +37,17 @@ void TestTriangle::onLoad() {
wm->getRenderer()->getCmdList().push_back([this](){ wm->getRenderer()->getCmdList().push_back([this](){
// 0. copy our vertices array in a buffer for OpenGL to use // 0. copy our vertices array in a buffer for OpenGL to use
glBindBuffer(GL_ARRAY_BUFFER, vbo); //glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); //glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
// 1. then set the vertex attributes pointers // 1. then set the vertex attributes pointers
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0); //glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);
glEnableVertexAttribArray(0); //glEnableVertexAttribArray(0);
// 2. use our shader program when we want to render an object // 2. use our shader program when we want to render an object
glUseProgram(program); glUseProgram(program);
glBindVertexArray(vao); glBindVertexArray(vao);
// 3. now draw the object // 3. now draw the object
glDrawArrays(GL_TRIANGLES, 0, 3); glDrawArrays(GL_TRIANGLES, 0, 3);
glBindVertexArray(0); //glBindVertexArray(0);
}); });
rcmd_it = --wm->getRenderer()->getCmdList().end()++; rcmd_it = --wm->getRenderer()->getCmdList().end()++;
@@ -55,10 +55,15 @@ void TestTriangle::onLoad() {
//////////////////////// ////////////////////////
glGenBuffers(1, &vbo); glGenBuffers(1, &vbo);
glGenVertexArrays(1, &vao);
glBindVertexArray(vao);
glBindBuffer(GL_ARRAY_BUFFER, vbo); glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
glGenVertexArrays(1, &vao); glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindVertexArray(0);
vs = glCreateShader(GL_VERTEX_SHADER); vs = glCreateShader(GL_VERTEX_SHADER);
glShaderSource(vs, 1, &vertexShaderSource, NULL); glShaderSource(vs, 1, &vertexShaderSource, NULL);

View File

@@ -23,9 +23,9 @@ class TestTriangle : public Archimedes::Module {
std::list<std::function<void()>>::iterator rcmd_it; std::list<std::function<void()>>::iterator rcmd_it;
float vertices[3 * 3] = { float vertices[3 * 3] = {
0.5, 0.5, 0.0, -0.5f, -0.5f, 0.0f,
0.5, 0.5, 0.0, 0.5f, -0.5f, 0.0f,
0.0, 0.5, 0.0 0.0f, 0.5f, 0.0f
}; };
unsigned int vao, vbo, vs, fs, program; unsigned int vao, vbo, vs, fs, program;