我想在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'。 –