hello rectangele

This commit is contained in:
k 2024-12-08 02:05:17 -05:00
parent fc06658659
commit d79f49535e
2 changed files with 24 additions and 6 deletions

View File

@ -1,16 +1,30 @@
float tri_vertices[] = {-0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.0f, 0.5f, 0.0f}; float tri_vertices[] = {-0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.0f, 0.5f, 0.0f};
float sqr_vertices[] = {
0.5f, 0.5f, 0.0f, /*top R*/
0.5f, -0.5f, 0.0f, /*bottom R*/
-0.5f, -0.5f, 0.0f, /*bottom L*/
-0.5f, 0.5f, 0.0f/*top R*/
};
unsigned int sqr_indices[] = {
0, 1, 3,/*tl triangle*/
1, 2, 3 /*br triangle*/
};
const char *basicVertexShaderSource = "#version 330 core\n" const char *basicVertexShaderSource = "#version 330 core\n"
"layout (location = 0) in vec3 aPos;\n" "layout (location = 0) in vec3 aPos;\n"
"out vec3 color;\n"
"void main()\n" "void main()\n"
"{\n" "{\n"
" color = aPos;"
" gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n" " gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n"
"}\0"; "}\0";
const char *basicFragmentShaderSource = "#version 330 core\n" const char *basicFragmentShaderSource = "#version 330 core\n"
"out vec4 FragColor;\n" "out vec3 FragColor;\n"
"in vec3 color;"
"void main()\n" "void main()\n"
"{\n" "{\n"
" FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f);\n" " FragColor = (color/2+.5)*1.5;\n"
"}\n"; "}\n";

View File

@ -32,19 +32,22 @@ int main(void) {
glViewport(0, 0, 800, 600); glViewport(0, 0, 800, 600);
glfwSetFramebufferSizeCallback(window, framebuffer_size_callback); glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
unsigned int VBO,VAO; unsigned int VBO,VAO,EBO;
glGenVertexArrays(1, &VAO); glGenVertexArrays(1, &VAO);
glBindVertexArray(VAO); glBindVertexArray(VAO);
glGenBuffers(1, &VBO); glGenBuffers(1, &VBO);
glBindBuffer(GL_ARRAY_BUFFER, VBO); glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(tri_vertices), tri_vertices, glBufferData(GL_ARRAY_BUFFER, sizeof(sqr_vertices), sqr_vertices,
GL_STATIC_DRAW); GL_STATIC_DRAW);
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);
glGenBuffers(1, &EBO);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(sqr_indices), sqr_indices, GL_STATIC_DRAW);
unsigned int shaderProgram = unsigned int shaderProgram =
shaderProgramCMPL(basicVertexShaderSource, basicFragmentShaderSource); shaderProgramCMPL(basicVertexShaderSource, basicFragmentShaderSource);
glUseProgram(shaderProgram); glUseProgram(shaderProgram);
@ -57,7 +60,8 @@ int main(void) {
glUseProgram(shaderProgram); glUseProgram(shaderProgram);
glBindVertexArray(VAO); glBindVertexArray(VAO);
glDrawArrays(GL_TRIANGLES, 0, 3);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
glfwSwapBuffers(window); glfwSwapBuffers(window);
glfwPollEvents(); glfwPollEvents();