计算机图形相关输出设备,计算机图形输出设备.ppt

该博客介绍了如何在Windows环境下使用OpenGL进行图形程序开发。主要内容包括:设置OpenGL支持的窗口风格,定义像素格式和创建绘图上下文,处理窗口大小变化,避免背景闪烁,以及在销毁时释放资源。此外,还涉及到OpenGL的绘图流程和在VisualC++中实现OpenGL绘图的步骤。
摘要由CSDN通过智能技术生成

计算机图形输出设备

第2章 计算机图形系统 2.1 计算机图形系统概述 2.2 基于Windows的图形程序开发方法 2.3 OpenGL介绍 2.1 计算机图形系统概述 2.1.1 计算机图形外部设备 新型显示器 计算机图形输入设备 计算机图形输出设备 2.1.2 计算机图形软件 几何造型平台 CAD/CAM 计算机动画软件 可视化软件 2.1.3 图形标准 图形标准的产生与发展历史 2.2 基于Windows的图形程序设计方法 2.2.1 Windows应用程序执行模式 2.2.2 Visual C++程序设计框架 2.2.3 Windows图形环境介绍 设备上下文DC(Device Context) 绘图句柄(HDC) 映射模式 2.2.4 Windows图形程序开发 2.3 OpenGL介绍 2.3.2 OpenGL的主要功能 2.3.3 OpenGL的绘制流程和原理 2.3.4 VC++开发OpenGL绘图程序 2.3.5 OpenGL的缓冲区 在Visual C++中,修改视图类成员函数代码实现OpenGL绘图的过程如下: ①改造PreCreateWindow函数:将窗口的客户区设置为OpenGL能够支持的风格。具体添加代码如下: cs.style=WS_CLIPCHILDREN|WS_CLIPSIBLINGS; ②改造OnCreate函数:定义像素存储格式,并创建一个OpenGL操作所必须的绘图上下文RC(Rendering Context)。使用一个PIXELFORMATDESCRIPTOR结构来指定像素格式,使用wglCreateContext()函数创建绘图上下文RC。 具体添加代码如下: //首先定义像素存储格式 PIXELFORMATDESCRIPTOR pfd= { sizeof(PIXELFORMATDESCRIPTOR), // pfd的大小 1, //结构的版本号 PFD_DRAW_TO_WINDOW| //支持window PFD_SUPPORT_OPENGL| //支持OpenGL PFD_DOUBLEBUFFER, //双缓存 PFD_TYPE_RGBA, //RGBA颜色模式 24, //24位颜色深度缓存 0,0,0,0,0,0, //color bits ignored 0, //no alpha buffer 0, //shift bit ignored 0, //不使用累积缓存 0,0,0,0, //accum bits ignored 32, //32位z缓冲 0, //不使用模板缓存 0, //no auxiliary buffer PFD_MAIN_PLANE, //选择主层面 0, //保留 0,0,0 //layer masks ignored }; CCLient dc(this); int pixelFormat=ChoosePixelFormat(dc.m_hDC,&pfd); BOOL success=SetPixelFormat(dc.m_hDC,pixelFormat,&pfd); //创建绘图上下文RC m_hRC=wglCreateContext(dc.m_hDC); ③改造OnSize函数:当视图尺寸变化是,应及时将新的客户区尺寸通知OpenGL,方能够正确在窗口客户区域显示二维场景,通过命令glViewPort完成这项工作。 ④改造OnEraseBkgnd函数:重载视图类的OnEraseBkgnd成员,使之返回TRUE值可以阻止Windows重画窗口背景,因为OpenGL自己会设置窗口背景,这样可以防止窗口频繁刷新(如移动窗口)时产生的闪烁现象。 ⑤改造OnDestroy函数:在OnDestroy成员中需要释放OnCreate成员中RC所占用的资源,命令wglDeleteContext可以完成这个工作,但在释放RC之前,还需要使用命令wglMakeCurrent()断开RC与设备描述表DC的连接。具体代码如下: wglMakeCurrent(NULL,NULL); wglDeleteContext(m_hRC); ⑥改造OnDraw:根据当前的视点、视距、观看方向等参数,设置合适的OpenGL视景体属性,使用户能够看到预期的场景外观。添加的代码如下: wglMakeCurrent(pDC->m_hDC,m_hRC); DrawScene(); //用户自定义函数,用来编写OpenGL绘制语句的 wglMakeCurrent(pDC->m_hDC,NULL); 在DrawScene(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值