mfc為編寫windows應用程式提供了極大的方便,程式設計師在編寫windows應用程式時,只需要幾步就可以把乙個程式的框架建立起來.該類極大的提高了程式設計者的開發效率,是個具有極大實用價值的工具.
下面我們編寫mfc 的opengl 應用程式.
要搭建乙個opengl基本框架,需要以下幾步:
(1)新建乙個單文件工程「openglmfc」
(2)給工程新增三個庫檔案「glaux.lib、glu32.lib、opengl32.lib」,這三個庫檔案一般在「c:\program files\microsoft visual studio\vc98\lib\」路徑中。
(3)在「stdafx.h」檔案中新增包含三個opengl的標頭檔案
#include
#include
#include
(4)通過類嚮導給檢視類新增三個訊息響應函式:
oninitialupdate(),oncreate(),onsize()。
(5)給檢視類新增三個成員變數:
cclientdc *m_pdc;
hglrcm_hrc; // 專門用於opengl的資料型別
crectm_rect;
(6) oncreate()函式中新增如下**,其中重點是bsetuppixelformat()函式,
bsetuppixelformat()函式用於設定opengl基本圖元格式,需要自定義新增,**如下:
;
int pixelformat;
if((pixelformat=choosepixelformat(m_pdc->getsafehdc(),&pfd))==0)
if(setpixelformat(m_pdc->getsafehdc(),pixelformat,&pfd)==false)
return true; }
(7)在onsize()函式中設定視口和場景大小。
(8) 在oninitialupdate()函式中新增初始化光照、材質等特性的**
;
float local_view=;
float position1=;
float light1_ambient=;
float light1_diffuse=;
float position2=;
float light2_ambient=;
float light2_diffuse=;
gllightfv(gl_light0,gl_position,position0);
gllightmodelfv(gl_light_model_local_viewer,local_view);
gllightfv(gl_light1,gl_diffuse,light1_diffuse);
gllightfv(gl_light1,gl_ambient,light1_ambient);
gllightfv(gl_light1,gl_position,position1);
gllightfv(gl_light2,gl_diffuse,light2_diffuse);
gllightfv(gl_light2,gl_ambient,light2_ambient);
gllightfv(gl_light2,gl_position,position2);
glenable(gl_lighting);
glenable(gl_light0);
glenable(gl_light1);
glenable(gl_light2);
glenable(gl_auto_normal);
glenable(gl_normalize);
getclientrect(&m_rect);
glclearcolor(0.0,1.0,1.0,1.0);
glcleardepth(1.0f);
glenable(gl_depth_test);
glhint(gl_line_smooth_hint,gl_dont_care);
glenable(gl_blend);
glenable(gl_line_smooth);
wglmakecurrent(null,null);
}
(9) 在ondraw()函式中新增**如下:
wglmakecurrent(m_pdc->getsafehdc(),m_hrc);
glclear(gl_color_buffer_bit|gl_depth_buffer_bit);
auxsolidbox(1.6,0.6,0.4);
gltranslatef(0.0,3.0,0.0);
auxsolidbox(0.6,0.6,0.4);
glflush();
swapbuffers(wglgetcurrentdc());
我們用自己構造的來繪製個簡單的圖形
opengl環境配置
glut庫 glut.h c program files x86 microsoft sdks windows v7.0a include gl glut.lib glut32.lib c program files x86 microsoft sdks windows v7.0a lib glut...
opengl環境配置
glut庫 glut.h c program files x86 microsoft sdks windows v7.0a include gl glut.lib glut32.lib c program files x86 microsoft sdks windows v7.0a lib glut...
OpenGL環境配置
第一步,選擇乙個編譯環境 現在windows系統的主流編譯環境有visual studio,broland c builder,dev c 等,它們都是支援opengl的。我選擇visual studio 2008和vc6 作為學習opengl的環境。第二步,安裝glut工具包 glut不是open...