在Win32下搭建opengl繪製環境

2021-07-10 13:26:24 字數 1734 閱讀 8280

在官方標準教程中使用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視窗...