OpenGL於MFC使用彙總(三) 離屏渲染

2021-09-07 01:39:02 字數 2034 閱讀 9393

有時直接建立opengl形式不適合,或者乾脆不同意然後建立乙個表單,正如我現在這個專案,建立窗體不顯示,它僅限於主框架。而我只是activex裡做一些相關工作,那僅僅能用到opengl的離屏渲染技術了~即不直接繪製到窗體上,而是繪製到一張點陣圖上。然後再次呼叫這張位圖實現興許的工作。

以下就總結怎麼使用所謂的「離屏渲染」。

const int width = 500;

const int height = 500;

// create a memory dc compatible with the screen

hdc hdc = createcompatibledc(0);

if (hdc == 0) cout<<"could not create memory device context";

// create a bitmap compatible with the dc

// must use createdibsection(), and this means all pixel ops must be synchronised

// using calls to gdiflush() (see createdibsection() docs)

bitmapinfo bmi = ,

};unsigned char *pbits; // pointer to bitmap bits

hbitmap hbm = createdibsection(hdc, &bmi, dib_rgb_colors, (void **) &pbits,

0, 0);

if (hbm == 0) cout<<"could not create bitmap";

//hdc hdcscreen = getdc(0);

//hbitmap hbm = createcompatiblebitmap(hdcscreen,width,height);

// select the bitmap into the dc

hgdiobj r = selectobject(hdc, hbm);

if (r == 0) cout<<"could not select bitmap into dc";

// choose the pixel format

pixelformatdescriptor pfd = ;

int pfid = choosepixelformat(hdc, &pfd);

if (pfid == 0) cout<<"pixel format selection failed";

// set the pixel format

// - must be done *after* the bitmap is selected into dc

bool b = setpixelformat(hdc, pfid, &pfd);

if (!b) cout<<"pixel format set failed";

// create the opengl resource context (rc) and make it current to the thread

hglrc hglrc = wglcreatecontext(hdc);

if (hglrc == 0) cout<<"opengl resource context creation failed";

wglmakecurrent(hdc, hglrc);

// draw using gl - remember to sync with gdiflush()

gdiflush();

/*詳細的繪製函式~~~~~~~~~~~~~~我就不寫了

*/// clean up

wgldeletecontext(hglrc); // delete rc

selectobject(hdc, r); // remove bitmap from dc

deleteobject(hbm); // delete bitmap

deletedc(hdc); // delete dc

指標使用彙總

include int main include include void f int p 3 4 原始型別 void f int p 4 省略第一維長度 void f int p 4 指標 指向乙個陣列,陣列中的每個元素是int型別 void f int p error 不能將第二維退化為指標 v...

Tomcat使用彙總

使用tomcat部署web應用一定要重啟!重啟!重啟。搞了三天的web程式部署,倒在了tomcat上,記錄這幾天使用的心得,防止自己下次再犯。tomcat伺服器檔案的結構 server.xml被稱為tomcat的主配置檔案或者全域性配置檔案,他主要完成 1.提供tomcat元件的初始配置 2.說明t...

adb shell dumpsys 使用彙總

一 activity和broadcast行為不正常時,如何抓取log?1 請使用mtklog抓取,保證有main log和event log產生 2 對於activity行為不正常,請開啟activity的log開關再抓取 adb shell dumpsys activity log a on 這個...