window下使用位图作为opengl纹理
2011-06-12 15:03
477 查看
HBITMAP hbmp = (HBITMAP)LoadImage(GetModuleHandle(NULL), Filename, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_LOADFROMFILE);
if (!hbmp)
return 0;
GLunit texture;
GetObject(hbmp, sizeof(bm), &bm);
Status=TRUE; // Set The Status To TRUE
glGenTextures(1, &texture); // Create The Texture
// Typical Texture Generation Using Data From The Bitmap
glBindTexture(GL_TEXTURE_2D, texture);
glTexImage2D(GL_TEXTURE_2D, 0, 3, bm.bmWidth, bm.bmHeight, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, bm.bmBits);
//GL_BGR_EXT很重要,因为位图数据从低位到高位依次为RED, GREEN, BLUE, 若使用GL_RGB就会出现颜色不对的现象。
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
DeleteObject(hbmp);
if (!hbmp)
return 0;
GLunit texture;
GetObject(hbmp, sizeof(bm), &bm);
Status=TRUE; // Set The Status To TRUE
glGenTextures(1, &texture); // Create The Texture
// Typical Texture Generation Using Data From The Bitmap
glBindTexture(GL_TEXTURE_2D, texture);
glTexImage2D(GL_TEXTURE_2D, 0, 3, bm.bmWidth, bm.bmHeight, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, bm.bmBits);
//GL_BGR_EXT很重要,因为位图数据从低位到高位依次为RED, GREEN, BLUE, 若使用GL_RGB就会出现颜色不对的现象。
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
DeleteObject(hbmp);
相关文章推荐
- opengl 使用soil读入bmp图像作为纹理
- opengl 使用soil读入bmp图像作为纹理
- 使用24位位图作为OpenGL的材质贴图
- 使用glfw库将OpenCV读取到的图片作为OpenGL的背景纹理贴图
- 利用opencv读取图片将其作为opengl的纹理图片的实现方法
- 使用二维纹理贴图,从24位位图加载,用vertex方式绘制
- opengl 基本图元颜色变换后显示纹理位图本身的颜色
- 在OpenGL中使用整数类型纹理进行计算
- OpenGL使用OpenCV处理图像进行纹理映射的使用范例
- OpenGL 纹理单元的使用步骤详解
- OpenGL 纹理单元的使用步骤
- VC使用位图作为对话框或者控件背景
- 树莓派3b 远程桌面使用opencv窗口不能显示(Window system doesn't support OpenGL)
- Part 10 使用TGA文件作为纹理
- ArchieOpenGL教程第11课:使用位图字体 在屏幕上显示字体
- OpenGL中使用SDL_image加载多种格式纹理
- Ogre中使用Opencv加载视频作为纹理贴图
- 使用DXT5纹理作为normalmap提高精度的方法
- android openGl纹理的使用
- Window平台OpenGL渲染环境之使用GLFW搭建