iPhone OpenGL ES加载纹理的方法
来源:互联网 发布:无人机航拍软件是什么 编辑:程序博客网 时间:2024/05/02 07:16
//加载一张名为xiezi.png的图片纹理
- (void)loadTexture {
CGImageRef textureImage = [UIImage imageNamed:@"xiezi.png"].CGImage;if (textureImage == nil) {
NSLog(@"Failed to load texture image");
return;
}
NSInteger texWidth = CGImageGetWidth(textureImage);
NSInteger texHeight = CGImageGetHeight(textureImage);
GLubyte *textureData = (GLubyte *)malloc(texWidth * texHeight * 4);
CGContextRef textureContext = CGBitmapContextCreate(textureData,
texWidth, texHeight,
8, texWidth * 4,
CGImageGetColorSpace(textureImage),
kCGImageAlphaPremultipliedLast);
CGContextDrawImage(textureContext, CGRectMake(0.0, 0.0, (float)texWidth, (float)texHeight), textureImage);
CGContextRelease(textureContext);
glGenTextures(1, &textures[0]);
glBindTexture(GL_TEXTURE_2D, textures[0]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texWidth, texHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, textureData);
free(textureData);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glEnable(GL_TEXTURE_2D);
}
其中,纹理缓冲区定义为:
GLuint textures[1];
加载纹理的方法中需要用到CoreGraphics框架,不然编译会出错。
- iPhone OpenGL ES加载纹理的方法
- iphone openGL/ES纹理读取
- iphone openGL/ES纹理读取
- OpenGL ES纹理尺寸限制的处理方法
- OpenGL ES 纹理参数设置方法 glTexParameter
- 西蒙iphone-OpenGL ES 教程-05 :纹理映射我们的矩形
- iPhone--OpenGL ES的资源
- 西蒙iphone-OpenGL ES 教程-04 : 颜色及纹理
- OpenGL ES 纹理阵列的实现
- opengl es 纹理无法显示的问题
- OpenGL ES纹理管理
- OpenGL ES纹理
- OpenGL ES纹理贴图
- Opengl es 纹理映射
- OpenGL ES纹理映射
- opengl es 纹理压缩
- OpenGL ES纹理贴图
- OpenGL ES纹理贴图
- servlet开发2
- subversion设置用户权限
- 著名编程语录--编程人必读
- Say Goodbye to Windows on my notebook
- MFC缩放对话框的实现
- iPhone OpenGL ES加载纹理的方法
- ansi string TO PWideChar注意事项
- 吾之所为,汝之所见
- C# Treeview控件用于权限操作
- 改变开始按钮的方法
- 拷贝构造函数和赋值操作符的区别 .
- 黑马程序员_继承的理解
- 读《黑客与画家》
- css属性列表 和 属性值含义<一>