triangle
unknown
c_cpp
2 years ago
2.1 kB
10
Indexable
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
#include <shader_s.h>
void framebuffe_call(GLFWwindow *window , int width , int hight);
void processinput (GLFWwindow * window);
int main()
{
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR , 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
GLFWwindow *window = glfwCreateWindow(800 , 600 , "afifi" , NULL , NULL);
if ( window == NULL)
{
std::cout << "error in creating windows" << std::endl;
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
glfwSetFramebufferSizeCallback(window, framebuffe_call);
if (!gladLoadGLLoader((GLADloadproc) glfwGetProcAddress))
{
std::cout << "error in creating windows" << std::endl;
return -2;
}
Shader ourshader("src/shader.vs" , "src/shader.fs");
float vertices[] = {
-0.5f, -0.5f, 0.0f, // left
0.5f, -0.5f, 0.0f, // right
0.0f, 0.5f, 0.0f // top
};
unsigned int VAO, VBO;
glGenVertexArrays(1 , &VAO);
glGenBuffers(1 , &VBO);
glBindVertexArray(VAO);
glBindBuffer(GL_ARRAY_BUFFER , VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
glVertexAttribPointer(0 , 3 ,GL_FLOAT ,GL_FALSE, 3*sizeof(float), (void*)0);
glEnableVertexAttribArray(0); // Enable the vertex attribute array here
glBindBuffer(GL_ARRAY_BUFFER , 0);
glBindVertexArray(0);
while (!glfwWindowShouldClose(window))
{
processinput(window);
glClearColor(0.5f , 0.5f , 0.0f ,1.0f);
glClear(GL_COLOR_BUFFER_BIT);
ourshader.use();
glBindVertexArray(VAO);
glDrawArrays(GL_TRIANGLES,0,3);
glfwSwapBuffers(window);
glfwPollEvents();
}
glDeleteVertexArrays(1,&VAO);
glDeleteBuffers(1 , &VBO);
}
void framebuffe_call(GLFWwindow *window , int width , int hight)
{
glViewport(0,0,width,hight);
}
void processinput(GLFWwindow *window) {
if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
glfwSetWindowShouldClose(window, true);
}
Editor is loading...
Leave a Comment