文档详情

在MFC中使用openGL.doc

发布:2018-06-17约2.96千字共9页下载文档
文本预览下载声明
在MFC中使用OpenGL 步骤: 一 加入库文件opengl32.lib, glu32.lib, glaux.libview.h”中,加入gl.h, glu.h, glaux.h在view”类中view.h”中class C*View : public Cview中,加入public: HGLRC hglrc; 五 编辑CREATE函数://初始化像素格式 PIXELFORMATDESCRIPTOR pfd={ sizeof(PIXELFORMATDESCRIPTOR), //结构大小 1, //结构版本号 PFD_DRAW_TO_WINDOW| //在窗口中绘图 PFD_SUPPORT_OPENGL| //支持opengl PFD_DOUBLEBUFFER, //双缓存 PFD_TYPE_RGBA, //RGBA 颜色模式 24, //24位颜色深度 0,0,0,0,0,0, 0, 0, 0, 0,0,0,0, 32, //32位深度缓存 0, 0, PFD_MAIN_PLANE, 0, 0,0,0 }; CClientDC clientdc(this); //获取当前DC句柄 int pf=ChoosePixelFormat(clientdc.m_hDC,pfd); //返回最佳匹配的象素格式 BOOL rc=SetPixelFormat(clientdc.m_hDC,pf,pfd); //设置象素格式 hglrc=wglCreateContext(clientdc.m_hDC); //创建绘制对象 六 编辑SIZE函数:GLsizei width=cx; GLsizei height=cy; CClientDC clientDC(this); wglMakeCurrent(clientDC.m_hDC,hglrc); glViewport(0,0,width,height);//表示视区,屏幕以(0,0)为原点,横向长width,纵向高heigth wglMakeCurrent(NULL,NULL); 七 编辑DESTROY函数:wglDeleteContext(hglrc); 八 在“*view”类中加入成员函数void myinit() void display() 九 编辑myinit函数:glClearColor(1.0,1.0,1.0,1.0); glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glEnable(GL_DEPTH_TEST); 十 编辑display函数:myinit();************************** glFlush(); 十一 编辑OnDraw函数:wglMakeCurrent(pDC-m_hDC,hglrc); display(); wglMakeCurrent(pDC-m_hDC,NULL); SwapBuffers(pDC-m_hDC); 练习一些OpenGL基本函数 一 glBegin(参数); **** glEnd(); 参数取值 类型 说明 GL_POINTS 单个顶点集 GL_LINES 多组双顶点线段 GL_POLYGON 单个简单填充凸多边形 GL_TRAINGLES 多组独立填充三角形 GL_QUADS 多组独立填充四边形 GL_LINE_STRIP 不闭合折线 GL_LINE_LOOP 闭合折线 GL_TRAINGLE_STRIP 线型连续填充三角形串 GL_TRAINGLE_FAN 扇形连续填充三角形串 GL_QUAD_STRIP 连续填充四边形串 glColor3f(*,*,*); //RGB *0.0~1.0 三 点(x,y) glPointSize(GLfloat *); //点大小 *: 0.0 glBegin(GL_POINTS); glColor3f(*,*,*);
显示全部
相似文档