-
Notifications
You must be signed in to change notification settings - Fork 5
PES_2_1
#include <glad/glad.h>
#include <GLFW/glfw3.h> -
#include <glad/glad.h>: Esta biblioteca se utiliza para manejar la carga de funciones de OpenGL. Es útil porque OpenGL no proporciona un mecanismo estándar para cargar extensiones de OpenGL.
-
#include <GLFW/glfw3.h>: Esta biblioteca se utiliza para manejar ventanas y la entrada del usuario. GLFW facilita la creación de ventanas y el manejo de eventos de entrada (como teclado y ratón).
-
void init(GLFWwindow* window) {}:Esta función está diseñada para realizar cualquier inicialización que sea necesaria para tu programa. Actualmente, está vacía, lo que significa que no se está realizando ninguna acción de inicialización específica.
void display(GLFWwindow* window) {}: Esta función se encarga de actualizar el contenido de la ventana.
-
glClear(GL_COLOR_BUFFER_BIT);:Limpia el buffer de color para preparar la ventana para el nuevo dibujo. -
glClearColor(1.0f, 2.0f, 0.0f, 1.0f);:Establece el color de fondo de la ventana. En este caso, el color se establece en un tono amarillo-verde (valores RGBA).
if (!glfwInit()) { exit(EXIT_FAILURE); }: Inicializa la biblioteca GLFW. Si la inicialización falla, el programa termina con un código de salida de error.
-
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);:Especifica que se desea utilizar la versión 4.x de OpenGL. -
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);:Especifica que se desea utilizar la versión 4.3 de OpenGL. -
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);:Indica que se debe utilizar el perfil principal (core profile) de OpenGL, eliminando las funciones obsoletas. -
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);:Indica que se debe utilizar un contexto compatible hacia adelante, eliminando las funciones obsoletas en futuras versiones de OpenGL.
GLFWwindow* window = glfwCreateWindow(1080, 720, "program_2_1", NULL, NULL);: Crea una ventana con dimensiones 1080x720 píxeles y el título "program_2_1".
Este bloque de código, aunque comentado, muestra cómo obtener y utilizar las propiedades del monitor primario para crear una ventana a pantalla completa.
const GLFWvidmode* mode = glfwGetVideoMode(glfwGetPrimaryMonitor());
GLFWwindow* window = glfwCreateWindow(mode->width, mode->height, "program_2_1", nullptr, nullptr);
std::cout << "width " << mode->width << std::endl;
std::cout << "height " << mode->height << std::endl;
std::cout << "refresh " << mode->refreshRate << std::endl;
std::cout << "blueBits " << mode->blueBits << std::endl;
std::cout << "redBits " << mode->redBits << std::endl;
std::cout << "greenBits " << mode->greenBits << std::endl;
if (!window) { glfwTerminate(); return -1; }: Verifica si la ventana se creó correctamente. Si no es así, termina el programa y libera los recursos de GLFW.
glfwMakeContextCurrent(window);: Establece el contexto de OpenGL actual para la ventana creada, lo que significa que todas las llamadas a funciones de OpenGL afectarán a esta ventana.
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { std::cout << "failed to initialize GLAD" << std::endl; return -1; }: Inicializa GLAD para cargar las funciones de OpenGL. Si la inicialización falla, imprime un mensaje de error y termina el programa.
while (!glfwWindowShouldClose(window)) {}: Bucle que se ejecuta hasta que se cierre la ventana.
-
display(window);:Llama a la función display para actualizar la ventana. -
glfwPollEvents();:Procesa todos los eventos pendientes de la ventana (como entrada del teclado y ratón). -
glfwSwapBuffers(window);:Intercambia los buffers de la ventana, mostrando el contenido recién dibujado.
glfwTerminate();: Libera los recursos utilizados por GLFW al finalizar el programa.