zoukankan      html  css  js  c++  java
  • 在mac环境下用QT使用OpenGL,glut,glfw

    只需要在新建工程中.pro文件中添加:
    #opengl glut
    LIBS+= -framework opengl -framework glut
    就可以使用glut了。

                                     
    继续添加:
    ##glfw
    LIBS+= -L/usr/local/lib -lglfw3
    INCLUDEPATH+=/usr/local/include


    #opengl glut
    LIBS+= -framework opengl -framework glut
    LIBS+= -framework Cocoa -framework IOKit -framework CoreVideo
    则就可以使用glfw了。

    #ifndef GLFWTEST_H
    #define GLFWTEST_H
    //#include <GLFW/glfw3.h>
    #include <GLFW/glfw3.h>
    #include <stdlib.h>
    #include <stdio.h>
    namespace glfw {
    
    
    static void error_callback(int error, const char* description)
    {
        fputs(description, stderr);
    }
    static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods)
    {
        if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS)
            glfwSetWindowShouldClose(window, GL_TRUE);
    }
    int start(void)
    {
        GLFWwindow* window;
        glfwSetErrorCallback(error_callback);
        if (!glfwInit())
            exit(EXIT_FAILURE);
        window = glfwCreateWindow(640, 480, "Simple example", NULL, NULL);
        if (!window)
        {
            glfwTerminate();
            exit(EXIT_FAILURE);
        }
        glfwMakeContextCurrent(window);
        glfwSetKeyCallback(window, key_callback);
        while (!glfwWindowShouldClose(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);
            glfwPollEvents();
        }
        glfwDestroyWindow(window);
        glfwTerminate();
        exit(EXIT_SUCCESS);
    }
    }
    
    
    #endif // GLFWTEST_H
    

      


                 

  • 相关阅读:
    如何实现虚拟机(VirtualBox)中的Ubuntu与Windows XP间的数据共享
    linux中安装sqlmap
    LookupError: unknown encoding: cp65001解决办法
    共勉
    Linux中安装Nginx
    touch: cannot touch `/home/tomcat7/logs/catalina.out': Permission denied
    程序猿的十一条浮躁表现
    MySQL中varchar类型排序
    Gson和FastJson
    jquery-messager-消息提示
  • 原文地址:https://www.cnblogs.com/gujianhan/p/3834664.html
Copyright © 2011-2022 走看看