幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3462|回复: 4

[分享]SDL+OPENGL(tips)

[复制链接]

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2007-3-13 17:05:18 | 显示全部楼层 |阅读模式
在SDL中创建能使用OpengGl的Surface,首先要使用SDL_GL_SetAttribute设置好SDL_GLattr
  1. SDL_Init(SDL_INIT_VIDEO);
  2. SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
  3. SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
  4. SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
  5. SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
  6. SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
  7. SDL_SetVideoMode(640, 480, 32, SDL_OPENGL);
复制代码
创建出来的是一个640*480大小,32位色,16位深度缓存,双缓存的Surface。
这里的SDL_SetVideoMode不能用SDL_DOUBLEBUF来设双缓存,得用SDL_GL_DOUBLEBUFFER才行。
接着调用opengl的函数,随便在屏幕中间画一个三角形
  1. glBegin(GL_TRIANGLES);
  2. glColor4f(1, 0, 0, 1); glVertex3f(0, 0.5, 0);
  3. glColor4f(0, 1, 0, 1); glVertex3f(-0.5, -0.5, 0);
  4. glColor4f(0, 0, 1, 1); glVertex3f(0.5, 0.5, 0);
  5. glEnd();
复制代码
把这个三角形显示
  1. SDL_GL_SwapBuffers();
复制代码
程序流程大体上就是这样,感觉还是挺容易用的。
え~え~お!!!
回复

使用道具 举报

18

主题

428

帖子

5260

积分

⑦老手

在美工荒中挣扎的全能

积分
5260
QQ
发表于 2007-3-13 18:52:01 | 显示全部楼层
顶一个……
话说这个似乎SDL手册里面有一节专门讲这个?
回复 支持 反对

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
 楼主| 发表于 2007-3-13 20:05:56 | 显示全部楼层
这些代码就是sdl的官方例子里面的。
我把它挑出来,把主要流程又抄了一遍,便于理解和记忆。
方便以后复查,免得自己又忘记了。
(前段时间还看了dx9的来着,现在已全忘光了[s:5] )
え~え~お!!!
回复 支持 反对

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
 楼主| 发表于 2007-3-15 00:42:08 | 显示全部楼层
  1. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);    // 清除屏幕及深度缓存
  2. glLoadIdentity(); //当前点重置到到屏幕中心
  3. glTranslatef(-1.5f,0.0f,-6.0f);    // 当前点左移 1.5 单位,并移入屏幕 6.0单位
  4. glBegin(GL_TRIANGLES);// 在当前点的位置绘制三角形
  5.     glVertex3f( 0.0f, 1.0f, 0.0f);    // 上
  6.     glVertex3f(-1.0f,-1.0f, 0.0f);    // 左下
  7.     glVertex3f( 1.0f,-1.0f, 0.0f);    // 右下
  8. glEnd();    // 绘制结束
复制代码
え~え~お!!!
回复 支持 反对

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
 楼主| 发表于 2007-3-26 18:22:38 | 显示全部楼层
导入BMP做opengl纹理的时候
BMP格式中的RGB顺序和一般的图形格式相反。
在glTexImage2D()函数中,BMP用GL_BGR,jpg等图形格式用GL_RGB。
え~え~お!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-3-28 17:58 , Processed in 0.021949 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表