在MFC中使用OpenGL相關配置的整理總結

2021-07-12 00:18:17 字數 1452 閱讀 8128

本文參考了 megabyte 的opengl教程

hglrc m_hglcontext;		//opengl的rc控制代碼

bool bglewinitialized; //初始化glew的判斷標誌

bool initglew(hdc); //首先初始化glew

bool createviewglcontext(hdc); //建立gl的rc

在cpp檔案中,為函式新增**,首先是glew的初始化函式。需要注意的是,glew的初始化需要有已經建立的rc,所以我們先設定相關畫素格式建立rc,初始化glew後再銷毀掉。如果沒有銷毀的話,此時已經建立起rc可以使用opengl1.1了,我們需要使用更高版本的gl特性,則需要銷毀掉,重新建立。

bool glwnd::initglew(hdc hdc)

bglewinitialized = true;

} wglmakecurrent(null, null);

wgldeletecontext(hrcfake);

return bresult;

}

接著,我們為createviewglcontext(hdc)建立**

bool glwnd::createviewglcontext(hdc hdc)

else if(wglew_arb_create_context && wglew_arb_pixel_format)

; int icontextattribs =

; int ipixelformat, inumformats;

wglchoosepixelformatarb(hdc, ipixelformatattriblist, null, 1, &ipixelformat, (uint*)&inumformats);

// pfd seems to be only redundant parameter now

if(!setpixelformat(hdc, ipixelformat, &pfd))return false;

m_hglcontext = wglcreatecontextattribsarb(hdc, 0, icontextattribs);

// if everything went ok

if(m_hglcontext)

else berror = true;

} else berror = true;

if(berror)

return true;

}

這樣就可以建立opengl的環境了,在視窗的oncreate()函式中,使用如下**:

cclientdc dc(this);

createviewglcontext(dc.mhdc);

mfc中使用OpenGL的方法

以前使用win32,但是mfc還是方便些 新建乙個類,用來封裝 opengl 相關的資訊,一般可直接使用該模式 class copengl copengl copengl void copengl copengl void bool copengl setuppixelformat hdc hdc0...

在wxPython中使用OpenGL

參考資料只有wxpython doc的乙個例子。需要安裝pyopengl pyopengl.sourceforge.net 給opengl使用的視窗容器是wx.glcanvas.glcanvas,子類化它,並在子類的paint事件處理中這樣處理 def onpaint self,event dc w...

在wxPython中使用OpenGL

參考資料只有wxpython doc的乙個例子。需要安裝pyopengl pyopengl.sourceforge.net 給opengl使用的視窗容器是wx.glcanvas.glcanvas,子類化它,並在子類的paint事件處理中這樣處理 def onpaint self,event dc w...