美文网首页
GLFW实验 1

GLFW实验 1

作者: 樱宝宝 | 来源:发表于2016-04-27 13:27 被阅读0次

    参考

    网上查了一些资料,入门决定使用 GLFW官网.

    实验过程

    Example_Code

    #include <GLFW/glfw3.h>
    
    void render(GLFWwindow *window) {
        glfwSwapBuffers(window);
        float ratio;
        int width, height;
        glfwGetFramebufferSize(window, &width, &height);
        ratio = width / (float) height;
        glViewport(0, 0, width, height);
        glClear(GL_COLOR_BUFFER_BIT);
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        glOrtho(-ratio, ratio, -1.f, 1.f, 1.f, -1.f);
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
        glRotatef((float) glfwGetTime() * 50.f, 0.f, 0.f, 1.f);
        glBegin(GL_TRIANGLES);
        glColor3f(1.f, 0.f, 0.f);
        glVertex3f(-0.6f, -0.4f, 0.f);
        glColor3f(0.f, 1.f, 0.f);
        glVertex3f(0.6f, -0.4f, 0.f);
        glColor3f(0.f, 0.f, 1.f);
        glVertex3f(0.f, 0.6f, 0.f);
        glEnd();
        glfwSwapBuffers(window);
    }
    
    
    int main(void) {
        GLFWwindow *window;
    
        // 初始化库
        if(!glfwInit())
            return 1;
    
        // 创建一个窗体
        window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
        if(!window) {
            glfwTerminate();
            return 1;
        }
    
        // 创建这个窗体的OpenGL上下文
        glfwMakeContextCurrent(window);
    
        // 收到窗体的关闭信号
        while(!glfwWindowShouldClose(window)) {
    
            // 渲染函数
            render(window);
    
            // 消息传递函数,只有设置了这个函数,窗体才会收到事件
            glfwPollEvents();
        }
    
        glfwTerminate();
        return 0;
    }
    

    阅读完官网教程之后,对 Example_Code进行编译

    g++ main.cpp `pkg-config --cflags glfw3` `pkg-config --static --libs glfw3` -o main
    

    运行结果

    Paste_Image.png

    相关文章

      网友评论

          本文标题:GLFW实验 1

          本文链接:https://www.haomeiwen.com/subject/checrttx.html