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