在官方標準教程中使用glfw3來建立opengl的窗體,處理輸入相關訊息。本文介紹下如何在win32下搭建opengl繪製環境。
以下是在win32下搭建opengl繪製環境的流程
1.入口函式:int winapi winmain(hinstance hinstance, hinstance hprevinstance, lpstr lpcmdline, int icmdshow)
2.視窗處理函式:lresult callback wndproc(hwnd hwnd, uint message, wparam wparam, lparam lparam)
3.註冊視窗型別:wndclass 註冊函式registerclass
4.建立視窗:createwindow
5.獲取dc:getdc( hwnd );
6.初始化pixelformatdescriptor
7.設定畫素結構:setpixelformat
8.建立rc:wglcreatecontext
9.設定opengl渲染環境:wglmakecurrent
10.善後處理:wglmakecurrent( null, null );wgldeletecontext( hrc );releasedc( hwnd, hdc );
以下**源自opengl.org提供的鏈結
//
// glsample.cpp
// by blaine hodge
//// includes
#include #include // function declarations
lresult callback wndproc(hwnd hwnd, uint message, wparam wparam, lparam lparam);
void enableopengl(hwnd hwnd, hdc * hdc, hglrc * hrc);
void disableopengl(hwnd hwnd, hdc hdc, hglrc hrc);
// winmain
int winapi winmain(hinstance hinstance, hinstance hprevinstance,
lpstr lpcmdline, int icmdshow)
else
} else
}// shutdown opengl
disableopengl( hwnd, hdc, hrc );
// destroy the window explicitly
destroywindow( hwnd );
return msg.wparam; }
// window procedure
lresult callback wndproc(hwnd hwnd, uint message, wparam wparam, lparam lparam)
return 0;
default:
return defwindowproc( hwnd, message, wparam, lparam );
} }// enable opengl
void enableopengl(hwnd hwnd, hdc * hdc, hglrc * hrc)
// disable opengl
void disableopengl(hwnd hwnd, hdc hdc, hglrc hrc)
在Win32下使用OpenGL
1.win32程式的框架是winmain wndproc。winmain中建立視窗同時實現訊息迴圈,wndproc中實現的是訊息的處理。2.win32程式執行時的過程主要是1 建立視窗2 捕獲視窗中的訊息並處理 win32下要使用opengl的話,在建立視窗時,要增加此視窗對opengl的擴充套件的...
Win32下使用OpenGL實現渲染
1.win32下基於directx的實現到處都可以找的到,我這裡實現的是基於opengl的實現 廢話不多說,直接看 1.標頭檔案中的部分 class rendereropengl public renderer,public singleton 2.cpp中的 類中與opengl裝置沒有直接關係的介...
easylzma在Win32下編譯
2.解壓c盤或d盤根目錄後 不要解在桌面上 在解開的檔案及目錄中,建乙個build目錄,再到http www.cmake.org 下乙個win32的cmake,並安裝好,安裝過程中,有個提示,一定選擇將cmake工作檔案新增到path中 3.進入到剛剛建立的build目錄,在該目錄下開乙個cmd視窗...