Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - class_OpenGL

#161
Cuando copiaste la librería *.a, ¿Copiaste libglfw3.a o libglfw.dll.a?
#162
Yo lo encontré. Tiene una llave mal puesta XD En realidad compilé el código y vi el fallo
#163
Ya digo que yo he compilado el código exitosamente
#164
Respecto a eso, es raro. Yo he compilado el código, y compila correctamente. Sin embargo, se me olvidó añadir la función glfwMakeContextCurrent, que hace que la ventana actual sea la que se use para dibujar:

#include <stdio.h>

#include <glfw\glfw3.h>

int main() {
    GLFWwindow *window = NULL; // Con esta variable nos referiremos a la ventana

    // Inicializamos la librería GLFW
    if(GL_TRUE != glfwInit()) {
        fprintf(stdout, "Error inicializando GLFW\n");
        return -1;
    }

    // Creamos ventana de dimensiones 800x600
    window = glfwCreateWindow(800, 600, "Titulo de ventana", NULL, NULL);
    if(NULL == window) {
        fprintf(stdout, "Error creando ventana de GLFW\n");
        return -1;
    }
    glfwMakeContextCurrent(window);

    // Color de fondo: blanco
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f);

    // Bucle del juego/programa
    while(GL_FALSE == glfwWindowShouldClose(window)) {
        // Actualizamos eventos (ratón, teclado, maximizar ventana, cerrar ventana...)
        glfwPollEvents();
        // Limpiamos búfer
        glClear(GL_COLOR_BUFFER_BIT);

        // Dibujamos triángulo
        glColor3f(1.0f, 0.0f, 0.0f); // Color del triángulo: rojo
        glBegin(GL_TRIANGLES);
        glVertex2f(-1.0f, -1.0f);
        glVertex2f( 1.0f, -1.0f);
        glVertex2f( 0.0f,  1.0f);
        glEnd();

        // Actualizamos el búfer de pantalla
        glfwSwapBuffers(window);
    }

    // Cerramos programa liberando memoria
    glfwTerminate();
    return 0;
}
#165
Sin tener en cuenta el posible error, veo que parte de tu código me parece un poco absurda xD. A esto me refiero:

for(i2 = 1; i2 <= 3; i2++) {
if(i2 == 1) {
// Fragmento de código donde no se usa i2
}

if(i2 == 2) {
// Fragmento de código donde no se usa i2
}

if(i2 == 3) {
// Fragmento de código donde no se usa i2
}
}


¿No sería más lógico, no se yo, directamente no usar el bucle for? xD

El código similar es el siguiente:
// Fragmento 1 de código donde no se usa i2

// Fragmento 2 de código donde no se usa i2

// Fragmento 3 de código donde no se usa i2
#166
El negado lo único que hace es que si una operación daba como resultado 'true', entonces pasa a ser 'false' y viceversa.

Si no entiendes por qué al convertir el and (&&) a or (||) se invierte lo que se invierte, entonces es que no conoces las leyes de De Morgan. Una de estas leyes dice que si tienes dos operandos en disyunción  (or) y la expresión está negada, puedes expresarla de la siguiente forma:

!(OperandoA o Operando B) <=> !OperandoA and !OperandoB

Si no se ha entendido muy bien, aquí dejo un link de la wikipedia donde se explica:
https://es.wikipedia.org/wiki/Leyes_de_De_Morgan
#167
Sinceramente, no tengo ni la menor idea de a qué se debe ese error. ¿Copiaste el código tal y como lo puse en este tema? Si es así, entonces lo único que se me ocurre es que reinstales MinGW. También puedes pasarme ese archivo .gl que te abre CodeBlocks para ver si yo veo el error. El archivo lo tendrías que subir a un servidor tal como mega.co.nz o el de tu preferencia
#168
Vale, a priori no sé que puede pasar. El compilador te tiene que decir qué error se está produciendo
#169
Recuerda, en esa carpeta 'Include' tiene que estar la carpeta glfw, y dentro de esa carpeta tiene que estar glfw3.h
#170
Eso tiene que ser porque estos pasos no los hiciste bien:

4 - Ahora vete al menú 'Project' -> 'Build Options'.

5 - Vete a la pestaña 'Search Directories'.

6 - En la pestaña 'Compiler', dale a 'Add' y selecciona el interior de la carpeta 'include'

NOTA SOBRE EL PASO 6: Recuerda que tienes que seleccionar el INTERIOR de la carpeta, no el directorio en el que está la carpeta. Por ejemplo, si la carpeta está en C:\Progrmacion\Include, la carpeta que tienes que seleccionar es C:\Programacion\Include, la que NO tienes que seleccionar es C:\Programacion