當前位置:
首頁 >
VC++下的OpenGL编程
發布時間:2025/3/15
24
豆豆
生活随笔
收集整理的這篇文章主要介紹了
VC++下的OpenGL编程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.值得記住的約定
一般情況下,VC++下進行OpenGL應用程序開發步驟如下: 1.通過PIXELFORMATDESCRIPTOR結構設置備注描述表DC的像素格式屬性。 2.創建渲染描述表RC,并與設備描述表DC建立聯系。 3.使用OpenGL作圖 4.釋放所占用的資源,包括解除DC和RC的聯系、刪除RC及其關聯的DC。 在這里,應該先為應用程序添加所需的變量和函數,對相關變量進行初始化,然后在相應函數中實現DC像素格式設置、RC的創建及其和DC的關聯、圖形繪制以及資源釋放等功能。2.一個典型實例
2.1 添加成員變量和成員函數
CClientDC* pDrawDC; // 用于指向當前DC的指針BOOL PixelformatSetting(void); // 用于設置像素格式 void GLSetting(void); // 用于創建渲染描述表RC 并關聯RC/DC void DrawGraphics(void); //OpenGL作圖2.2 添加消息響應函數
WM_CREATE ?--- OnCreate(); //該消息響應函數在建立一個窗體前被調用。 WM_DESTROY --- OnDestroy(); //窗口撤銷時響應此函數,因此在該函數中釋放所有被占用的資源。 WM_SIZE ? ?--- OnSize(); ? ?//改變窗口大小時響應此函數,可以調整視場。 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnDestroy(); afx_msg void OnSize(UINT nType, int cx, int cy);2.3 成員函數和消息響應函數添加代碼
- 設置像素格式
- 創建渲染描述表,調用PixelFormatSetting()設置像素格式,創建和DC關聯的RC
- 在消息響應函數OnCreate()中調用函數GLSetting(),使得GL環境生效
- 繪制幾何拓撲
- OnDraw函數中,圖像顯示
- 刪除渲染描述表RC及其綁定的設備描述表DC
2.4 添加人機交互(旋轉功能)
采用鼠標左鍵控制開關,定時旋轉方案。 WM_BUTTONDOWN ?--- ?OnLButtonDown(); WM_TIMER ? ? ? --- ?OnTimer(); 添加變量: BOOL bRotate; float RotateAngle;void CtestGLView::OnLButtonDown(UINT nFlags, CPoint point) {if (bRotate){SetTimer(1,100,NULL);} else{KillTimer(1);}bRotate = !bRotate;CView::OnLButtonDown(nFlags, point); }void CtestGLView::OnTimer(UINT_PTR nIDEvent) {//定時器計時達到預定時刻 則旋轉角度增加10if( nIDEvent == 1){RotateAngle += 10;Invalidate(FALSE); //重新繪制}CView::OnTimer(nIDEvent); }3.輸出結果
總結
以上是生活随笔為你收集整理的VC++下的OpenGL编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 飞鸽
- 下一篇: 程序设计C++使大家容易陷入重复劳动