GLFW实验 1

参考

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

实验过程

Example_Code

#include 

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

运行结果

GLFW实验 1_第1张图片
Paste_Image.png

你可能感兴趣的:(GLFW实验 1)