zoukankan      html  css  js  c++  java
  • Ubuntu13.04使用Mesa

    3年前写过一些关于如何使用Mesa的文章,如今再试。有些东西已经变了。

    首先安装:

    sudo apt-get install libgl1-mesa-dev
    sudo apt-get install libglu1-mesa-dev
    sudo apt-get install freeglut3-dev


    现在不用NetBeans了,用CMake创建工程。

    根目录下的CMakeLists.txt内容:

    cmake_minimum_required(VERSION 2.8)
    project (vender)
    add_subdirectory(src bin)


    src目录下的CMakeLists.txt文件内容如下:

    cmake_minimum_required(VERSION 2.8)
    set(CMAKE_BUILD_TYPE Debug)
    set(PROJECT_INCLUDE_DIR ../include)
    
    include_directories(${PROJECT_INCLUDE_DIR})
    AUX_SOURCE_DIRECTORY(${CMAKE_SOURCE_DIR}/src CPP_LIST1)
    
    add_executable(vender ${CPP_LIST1})
    target_link_libraries(vender GL GLU glut)
    add_definitions(-Wall)

    然后看一下src/main.cc文件内容,和3年前代码一样。

    #include <GL/glut.h>
    
    void init();
    void display();
    
    int main(int argc, char* argv[]) {
      glutInit(&argc, argv);
      glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
      glutInitWindowPosition(0, 0);
      glutInitWindowSize(300, 300);
    
      glutCreateWindow("OpenGL 3D View");
    
      init();
      glutDisplayFunc(display);
    
      glutMainLoop();
      return 0;
    }
    
    void init() {
      glClearColor(0.0, 0.0, 0.0, 0.0);
      glMatrixMode(GL_PROJECTION);
      glOrtho(-5, 5, -5, 5, 5, 15);
      glMatrixMode(GL_MODELVIEW);
      gluLookAt(0, 0, 10, 0, 0, 0, 0, 1, 0);
    }
    
    void display() {
      glClear(GL_COLOR_BUFFER_BIT);
    
      glColor3f(1.0, 0, 0);
      glutWireTeapot(3);
    
      glFlush();
    }
    

    运行结果:



    我这次不想绘制什么图形,只是想知道我的显卡类型。因此代码删减如下:

    #include <GL/glut.h>
    
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char* argv[]) {
      glutInit(&argc, argv);
      glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
      glutInitWindowPosition(0, 0);
      glutInitWindowSize(300, 300);
      
        
      glutCreateWindow("OpenGL 3D View");
    
      GLubyte const* vender = glGetString(GL_VENDOR);
      cout << "GL_VENDOR: " << vender << endl;
    
      GLubyte const* renderer = glGetString(GL_RENDERER);
      cout << "GL_RENDERER: " << renderer << endl;
    
      GLubyte const* version = glGetString(GL_VERSION);
      cout << "GL_VERSION: " << version << endl;
    
      return 0;
    }
    


    运行结果:

    dean@dean-GA-MA790XT-UD4P:~/work/opengl/vendor/build/bin$ ./vender 
    GL_VENDOR: X.Org
    GL_RENDERER: Gallium 0.4 on AMD JUNIPER
    GL_VERSION: 3.0 Mesa 9.1.4


  • 相关阅读:
    Open source cryptocurrency exchange
    Salted Password Hashing
    95. Unique Binary Search Trees II
    714. Best Time to Buy and Sell Stock with Transaction Fee
    680. Valid Palindrome II
    Java compiler level does not match the version of the installed Java project facet.
    eclipse自动编译
    Exception in thread "main" java.lang.StackOverflowError(栈溢出)
    博客背景美化——动态雪花飘落
    java九九乘法表
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3201206.html
Copyright © 2011-2022 走看看