MFC 中配置OpenGL環境

2021-07-10 09:11:18 字數 2604 閱讀 5474

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...