我想在Windows上創建一個OpenGL應用程序。據我所知,我必須獲得的第一件事情之一是設備上下文,它必須傳遞給幾個選擇和設置像素格式並創建渲染上下文的函數。我使用the OpenGL wiki來了解我應該做什麼。 我的代碼是這樣的:OpenGL獲取設備上下文
#include <iostream>
#include <windef.h>
#include <wingdi.h>
HDC hdc;
int main() {
hdc = wglGetCurrentDC();
std::cout << "HDC: " << hdc << std::endl;
return 0;
}
這將打印
HDC: 0
我假定設備上下文指的是物理設備,但我讀的地方,它是指任何可繪製的「面」。在這兩種情況下是我的問題:我如何獲得一個非空DC?或者我應該執行一組完全不同的步驟來設置整個OpenGL系統?
我發現很多教程在線,但它們都使用GLUT,GLEW,GLFW,X11,SDL等,這些庫。圖書館使某些事情變得更容易,但他們通常不執行不使用它們的不可能完成的任務。這一次,我想嘗試以艱難的方式做事,因此不使用庫,只是簡單的OpenGL。
我發現,在去年,a tutorial只有使用Windows庫用於創建一個窗口。
我也這麼認爲,但文章主要是關於創建一個OpenGL上下文,而我需要的上下文是一個設備上下文。文章指出:「你應該知道窗口句柄(HWND)和設備上下文(DC)是什麼,以及如何創建它們。」 –
所以你的意思是代碼不適用於這種情況。我認爲你可能是對的,但這個問題成爲我必須創建一個問題。 –
對不起,你是對的;因爲它是一個WGL函數,所以我把它誤認爲是'wglGetCurrentContext'。 –