Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1003501
  • 博文数量: 150
  • 博客积分: 3017
  • 博客等级: 少校
  • 技术积分: 3829
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-19 14:40
个人简介

Now in Baidu WISE team

文章分类

全部博文(150)

文章存档

2014年(8)

2013年(31)

2012年(111)

分类: C/C++

2012-06-20 00:05:21

如何编译:
例子中的代码同时引用了SDL和GL库,需要通过 sdl-config --lib --cflags 或-lSDL 加入SDL库 , -lGL 加入GL库

引用:
引用: http://pbeblog.wordpress.com/2009/02/16/compile-sdlopengl-applications-using-g/
g++ sourcefile.cpp -o output -lSDL -lGL 或者
g++ sourcefile.cpp -o output `sdl-config --libs --cflags` -lGL -lGLU

Sample code:
引用:
这段代码是画一个圆。在ubuntu下运行成功

点击(此处)折叠或打开

  1. // g++ me.cpp -lSDL -lGL

  2. #include <math.h>
  3. #include <GL/gl.h>
  4. #include <SDL/SDL.h>

  5. #define RAD2DEG 0.0174532925

  6. void init(int width, int height)
  7. {
  8.     // Initialize SDL
  9.     const SDL_VideoInfo* info = NULL;
  10.     SDL_Init(SDL_INIT_VIDEO);
  11.     info = SDL_GetVideoInfo();    
  12.     int vidFlags = SDL_OPENGL | SDL_GL_DOUBLEBUFFER;
  13.     if (info->hw_available) {vidFlags |= SDL_HWSURFACE;}
  14.     else {vidFlags |= SDL_SWSURFACE;}
  15.     SDL_SetVideoMode(width, height, info->vfmt->BitsPerPixel, vidFlags);

  16.     // Initialize OpenGL for 2d
  17.     glViewport( 0, 0, width, height );
  18.     glMatrixMode( GL_PROJECTION );
  19.     glOrtho( 0, width, height, 0, -1, 1 );
  20.     glMatrixMode( GL_MODELVIEW );
  21.    glDisable(GL_DEPTH_TEST);
  22. }

  23. void glCircle(GLint x, GLint y, GLint r)
  24. {
  25.    float step = 360.0 / (2.0*M_PI*r);
  26.    glPushMatrix();
  27.    glTranslatef(x, y, 0);
  28.    glBegin(GL_TRIANGLE_FAN);
  29.    glVertex2i(0, 0);
  30.    for(float i=0; i<360; i+=step)
  31.    {
  32.       glVertex2i((GLint)(cos(RAD2DEG*i)*r), (GLint)(sin(RAD2DEG*i)*r));
  33.    }
  34.    glEnd();
  35.    glPopMatrix();
  36. }

  37. int main()
  38. {
  39.    init(640, 480);
  40.    glClear(GL_COLOR_BUFFER_BIT);
  41.     glLoadIdentity();
  42.    glCircle(200, 200, 100);
  43.     SDL_GL_SwapBuffers();
  44.     SDL_Delay(2000);
  45. }



阅读(6156) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~