在Win32下使用OpenGL

2021-06-18 05:23:27 字數 2153 閱讀 5722

1.win32程式的框架是winmain+wndproc。winmain中建立視窗同時實現訊息迴圈,wndproc中實現的是訊息的處理。

2.win32程式執行時的過程主要是1:建立視窗2:捕獲視窗中的訊息並處理

win32下要使用opengl的話,在建立視窗時,要增加此視窗對opengl的擴充套件的支援。那麼在視窗建立的什麼時候增加此視窗對opengl的擴充套件呢?

在視窗建立時,有wm_create、wm_size、wm_paint三個訊息依次產生,那麼我們可以在wm_create中增加此視窗對opengl的支援的**,同時對opengl渲染環境進行初始化。然後在wm_size中實現opengl中的檢視變換。這樣opengl繪圖操作的前置工作已經完成了,在wm_paint中就可以使用opengl進行繪圖了。

#include // #include // #include #include // #include // #include // #include //#pragma comment(lib,"glu32.lib")

//pragma comment(lib,"glaux.lib")

//pragma comment(lib,"opengl32.lib")

lresult callback wndproc(hwnd, uint, wparam, lparam); //視窗函式說明

int apientry winmain(hinstance hinstance, //winmain函式說明

hinstance hprevinstance, lpstr lpcmdline, int ncmdshow)

//建立視窗操作

hwnd hwnd; //視窗結構

hwnd = createwindow(lpszclassname, //建立視窗,視窗類名

lpsztitle, //視窗例項的標題名

cw_usedefault,

cw_usedefault, //視窗左上角座標為預設值

cw_usedefault,

cw_usedefault, //視窗的高度和寬度為預設值

null, //此視窗無父視窗

null, //此視窗無主選單

hinstance, //應用程式當前控制代碼

null); //不使用該值

showwindow(hwnd, ncmdshow); //顯示視窗

updatewindow(hwnd); //繪製使用者區

// int initgl(glvoid);

msg msg; //訊息結構

while (getmessage(&msg, null, 0, 0)) //訊息迴圈

return msg.wparam; //程式終止時,將資訊返回作業系統

}void setuppixelformat(hdc hdc) //為裝置環境設定畫素格式

; //忽略層面掩模

//選擇最匹配的畫素格式,返回索引值

npixelformat = choosepixelformat(hdc, &pfd);

//設定環境裝置的畫素格式

setpixelformat(hdc, npixelformat, &pfd);

}int initgl(glvoid) // 此處開始對opengl進行所有設定

void changesize(int width, int height)

void renderscene()

lresult callback wndproc(hwnd hwnd, uint message, wparam wparam, lparam lparam)

break;

case wm_destroy:

break;

case wm_size:

break;

// case wm_timer:

//

// break;

case wm_paint:

break;

// case

default: //預設訊息處理函式

return defwindowproc(hwnd, message, wparam, lparam);

} return 0;

}

Win32下使用OpenGL實現渲染

1.win32下基於directx的實現到處都可以找的到,我這裡實現的是基於opengl的實現 廢話不多說,直接看 1.標頭檔案中的部分 class rendereropengl public renderer,public singleton 2.cpp中的 類中與opengl裝置沒有直接關係的介...

在Win32下搭建opengl繪製環境

在官方標準教程中使用glfw3來建立opengl的窗體,處理輸入相關訊息。本文介紹下如何在win32下搭建opengl繪製環境。以下是在win32下搭建opengl繪製環境的流程 1.入口函式 int winapi winmain hinstance hinstance,hinstance hpre...

easylzma在Win32下編譯

2.解壓c盤或d盤根目錄後 不要解在桌面上 在解開的檔案及目錄中,建乙個build目錄,再到http www.cmake.org 下乙個win32的cmake,並安裝好,安裝過程中,有個提示,一定選擇將cmake工作檔案新增到path中 3.進入到剛剛建立的build目錄,在該目錄下開乙個cmd視窗...