Windows中设置OpenGL像素格式的两种方法
来源:互联网 发布:819事变 知乎 编辑:程序博客网 时间:2024/05/22 01:33
indows使用OpenGL必须设置OpenGL环境,将窗口连接到OpenGL。首先选择并设置相应像素格式,然后创建着色描述表并将其连接到设备描述表。本文介绍两种设置OpenGL环境的方法,主要是选择像素格式方法的不同。
HDC g_hDC = NULL;
HGLRC g_hRC = NULL;
#define METHOD_1
BOOL ConnectGL1 (HWND hWnd);
BOOL ConnectGL2 (HWND hWnd);
#ifdef METHOD_1
#define ConnectGL ConnectGL1
#endif
#ifdef METHOD_2
#define ConnectGL ConnectGL2
#endif
BOOL ConnectGL1 (HWND hWnd)
{
GLuint PixelFormat;
static PIXELFORMATDESCRIPTOR pfd = {
sizeof (PIXELFORMATDESCRIPTOR),
1,
PFD_DWAR_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, //标志
PFD_TYEP_RGBA, //颜色模式
24, //颜色位数
0, 0, 0, 0, 0, 0,
0,
0,
0,
0, 0, 0, 0,
32, //深度位数
0,
0,
PFD_MAIN_PLANE,
0,
0, 0, 0
};
if ((g_hDC = GetDC (hWnd)) == NULL) return FALSE;
if ((PixelFormat = ChoosePixelFormat (g_hDC, &pfd)) == 0) return FALSE; //选择相应像素格式
if (!SetPixelFormat (g_hDC, PixelFormat, &pfd)) return FALSE; //设置像素格式
if ((g_hRC = wglCreateContext (g_hDC)) == NULL) return FALSE; //创建着色描述表
if (!wglMakeCurrent (g_hDC, g_hRC)) return FALSE; //将着色描述表连接到设备描述表
}
#define DESFLAGS PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER
BOOL ConnectGL2 (HWND hWnd)
{
GLuint PixelFormat, iPixelFormat, maxPixelFormat;
static PIXELFORMATDESCRIPTOR pfd;
if ((g_hDC = GetDC (hWnd)) == NULL) return FALSE;
maxPixelFormat = DescribePixelFormat (g_hDC, 1, sizeof (PIXELFORMATDESCRIPTOR), NULL); //获取所支持的像素最大索引
for (iPixelFormat = 1; iPixelFormat <= maxPixelFormat; iPixelFormat++) {
DescribePixelFormat (g_hDC, iPixelFormat, sizeof (PIXELFORMATDESCRIPTOR), &pfd);
if ((pfd.dwFlags & DESFLAGS) == DESFLAGS) {
PixelFormat = iPixelFormat;
break;
}
}
if (!SetPixelFormat (g_hDC, PixelFormat, &pfd)) return FALSE; //设置像素格式
if ((g_hRC = wglCreateContext (g_hDC)) == NULL) return FALSE; //创建着色描述表
if (!wglMakeCurrent (g_hDC, g_hRC)) return FALSE; //将着色描述表连接到设备描述表
}
- Windows中设置OpenGL像素格式的两种方法
- openCV中访问图像像素的两种方法
- 《高效学习OpenGL》之 openGL设置窗口像素格式
- opengl像素格式
- OpenGL像素格式-PIXELFORMATDESCRIPTOR
- 像素格式OpenGL
- OpenGL像素格式
- OpenGL像素格式
- windows下利用gdi+读取图片并转换成opengl纹理支持的像素格式
- 设置Windows XP自动登录的两种方法
- Windows 设置护眼色的两种方法
- OpenGL清理缓存的两种方法
- OpenCV两种易于理解的访问像素的方法
- opencv获取图像像素值的两种方法
- 访问图像内像素的两种常用方法
- OpenGL像素默认像素存储格式
- MFC和opengl像素格式
- 关于Android中设置全屏的两种方法
- 《植物大战僵尸》网页版!火热试玩当中
- TeamCity 配置笔记
- 悲剧的Nokia,悲剧的meego,悲剧的N9,悲剧的我。
- 51系列单片机延时程序计算的分析(汇编)
- linux进程和内核地址空间
- Windows中设置OpenGL像素格式的两种方法
- Linq to Sql 不错的BLOG
- 提高班——10%约定
- 进程优先级反转
- Javabean,POJO,PO,VO,DTO
- JAVA程序员之路(转自百度)
- 码农
- Linux模块的一点事情
- 返回数字中二进制位为'1'的个数