是否有可能捕獲子行程的opengl輸出?
孩子不應該有不同的視窗。輸出應該由父級捕獲和顯示。
我知道我可以創建一個層,我的孩子可以使用它在我的父應用程式中創建 opengl 回呼。并通過套接字或管道發送資料。
編輯:我撰寫主應用程式和子應用程式。
uj5u.com熱心網友回復:
好的,這里是我認為可以做到這一點的簡要說明。這是完全未經測驗的,所以 YMMV。
在父行程中創建您的視窗。根據此頁面,您需要使用
CS_OWNDC樣式創建它,這意味著它具有相同的HDC永久關聯。啟動您的子行程。您可以將
HWND其作為命令列引數傳遞給它,例如轉換為 hex-ascii,或者您可以設計一些其他方法。在子行程中,呼叫
GetDC以檢索HDC父視窗并將其傳遞給wglCreateContext(我想你知道所有關于做那種事情的事情)。在子行程中,畫,畫,畫。
在退出子行程之前,請確保呼叫
ReleaseDC以釋放由GetDC.
這應該行得通。例如,我知道 Chrome 對每個瀏覽器選項卡使用單獨的行程(因此,如果渲染到任何特定選項卡的代碼崩潰,它只會影響該選項卡)。
此外,如果您只是因為想要重新加載一些(不同的)DLL 而考慮跳過所有這些障礙,那么您可能正在尋找LoadLibraryandGetProcAddress而不是。嗯,也許我不需要寫所有這些:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/438367.html
