tmp
This commit is contained in:
parent
a9fbb909ac
commit
e161fffc0c
1 changed files with 40 additions and 16 deletions
|
|
@ -5,32 +5,56 @@
|
||||||
using namespace tp;
|
using namespace tp;
|
||||||
|
|
||||||
struct Shape {
|
struct Shape {
|
||||||
float buffer[6] = {
|
float buffer[8] = {
|
||||||
0, 0, 1, 0, 0, 1,
|
1, 1, 1, 0, 0, 0, //
|
||||||
|
0, 1, // 1, 1, 0, 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
GLuint vbo_id = 0;
|
unsigned int indices[6] = { 0, 1, 3, 1, 2, 3 };
|
||||||
GLuint vbo_len = 6;
|
|
||||||
|
GLuint VAO = 0;
|
||||||
|
GLuint VBO = 0;
|
||||||
|
GLuint EBO = 0;
|
||||||
|
|
||||||
Shape() {
|
Shape() {
|
||||||
glGenBuffers(1, &vbo_id);
|
glGenVertexArrays(1, &VAO);
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, vbo_id);
|
glGenBuffers(1, &VBO);
|
||||||
glBufferData(GL_ARRAY_BUFFER, sizeof(buffer), buffer, GL_STATIC_COPY);
|
glGenBuffers(1, &EBO);
|
||||||
}
|
|
||||||
|
|
||||||
void drawCall() {
|
glBindVertexArray(VAO);
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, vbo_id);
|
|
||||||
|
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||||
|
glBufferData(GL_ARRAY_BUFFER, sizeof(buffer), buffer, GL_STATIC_DRAW);
|
||||||
|
|
||||||
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
|
||||||
|
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
|
||||||
|
|
||||||
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(float), nullptr);
|
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(float), nullptr);
|
||||||
glEnableVertexAttribArray(0);
|
glEnableVertexAttribArray(0);
|
||||||
|
|
||||||
glDrawArrays(GL_TRIANGLES, 0, 3);
|
// glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
|
||||||
|
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
||||||
glDisableVertexAttribArray(0);
|
|
||||||
glBindVertexArray(0);
|
glBindVertexArray(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
~Shape() { glDeleteBuffers(1, &vbo_id); }
|
void drawCall() {
|
||||||
|
const auto numPoints = sizeof(buffer) / (2 * sizeof(float));
|
||||||
|
|
||||||
|
glBindVertexArray(VAO);
|
||||||
|
|
||||||
|
// glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
|
||||||
|
auto num = sizeof(indices) / sizeof(indices[0]);
|
||||||
|
glDrawElements(GL_TRIANGLES, num, GL_UNSIGNED_INT, nullptr);
|
||||||
|
|
||||||
|
// glDrawArrays(GL_TRIANGLES, 0, sizeof(buffer) / (2 * sizeof(float)));
|
||||||
|
|
||||||
|
// glBindVertexArray(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
~Shape() {
|
||||||
|
glDeleteBuffers(1, &VBO);
|
||||||
|
glDeleteVertexArrays(1, &VAO);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Render::Render(Vec2F renderResolution) :
|
Render::Render(Vec2F renderResolution) :
|
||||||
|
|
@ -61,14 +85,14 @@ void Render::render(const Geometry& geometry, Vec2F size) {
|
||||||
static auto uniform_scale = mDefaultShader.getu("Viewport");
|
static auto uniform_scale = mDefaultShader.getu("Viewport");
|
||||||
|
|
||||||
RGBA col = { 0, 0, 1.f, 1.f };
|
RGBA col = { 0, 0, 1.f, 1.f };
|
||||||
RectF viewport = { 0.0f, 0.0f, 1.f, 1.f };
|
RectF viewport = { -1.0f, -1.0f, 3.f, 3.f };
|
||||||
viewport.w = viewport.z * (size.y / size.x);
|
viewport.w = viewport.z * (size.y / size.x);
|
||||||
|
|
||||||
glUniform4fv(uniform_color, 1, &col.r);
|
glUniform4fv(uniform_color, 1, &col.r);
|
||||||
glUniform4fv(uniform_scale, 1, &viewport.x);
|
glUniform4fv(uniform_scale, 1, &viewport.x);
|
||||||
|
|
||||||
shape.drawCall();
|
shape.drawCall();
|
||||||
|
|
||||||
mDefaultShader.unbind();
|
mDefaultShader.unbind();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue