草庐IT

c++ - 获取窗口的像素格式

我已经创建了一个在Windows上运行的OpenGL应用程序。有什么方法可以查询有关当前渲染窗口的像素格式的信息吗?(窗口是使用GLFW库创建的)我感兴趣的是:色位深度位像素类型等等 最佳答案 我是这样做的:inti;HDChdc;PIXELFORMATDESCRIPTORpfd;hdc=GetDC(window_handle);//getdevicecontexti=GetPixelFormat(hdc);//pixelformatdescriptorindexDescribePixelFormat(hdc,i,sizeof(pf

c++ - Windows 函数 ChoosePixelFormat 在 Windows 7 上返回 ERR_OLD_WIN_VERSION

我试图通过制作一个窗口并将OpenGL上下文附加到它来自学win32API。为了获取适当的像素格式,必须调用ChoosePixelFormat,它应该返回系统支持并最能满足我的需要的像素格式。当我检查错误时,一切顺利,直到调用此函数停止执行并记录错误1150-ERR_OLD_WIN_VERSION,这应该意味着我的Windows版本不支持此功能。显然不是这种情况,msdn确认此功能可在自windows2000以来的所有windows版本上运行。现在我在桌面上运行windows7x64,并且我确保我的视频驱动程序和操作系统已完全更新。很多人似乎在像素格式功能方面遇到了麻烦,但我没有发现任

c++ - wglCreateContextAttribsARB 在有能力的硬件上返回 NULL

我有一个程序可以在Windows机器上创建OpenGL4.0上下文。在我自己的电脑上,这段代码可以工作——但是,在我friend的电脑上,它就不行了。wglCreateContextAttribsARB返回NULL,即使我friend的Nvidia卡支持OpenGL4.4并且应该能够返回向后兼容的上下文。其他所有调用都按预期进行。这是上下文创建代码:dc=GetDC(window::get());PIXELFORMATDESCRIPTORpfd={0};pfd.nSize=sizeof(pfd);pfd.dwFlags=PFD_DOUBLEBUFFER|PFD_SUPPORT_OPEN

c++ - 改变RGBA颜色后OpenGL以16种颜色绘制

当我尝试在OpenGL中使用RGBA颜色绘制二维圆时,它使用最接近的16色调色板颜色绘制它。这是我使用的代码。//InitcanvasglMatrixMode(GL_PROJECTION);glLoadIdentity();glOrtho(0,Screen.Width(),Screen.Height(),0,0,1);glMatrixMode(GL_MODELVIEW);glColorMaterial(GL_FRONT,GL_AMBIENT_AND_DIFFUSE);glEnable(GL_COLOR_MATERIAL);//BackgroundglClearColor(0.0,0.0

c# - C# 中的 wglCreateContext 失败但托管 C++ 中没有

我正在尝试在C#中使用opengl。我有以下代码失败并出现错误2000ERROR_INVALID_PIXEL_FORMAT第一个定义:[DllImport("user32.dll",CharSet=CharSet.Auto,SetLastError=true,ExactSpelling=true)]publicstaticexternIntPtrGetDC(IntPtrhWnd);[StructLayout(LayoutKind.Sequential)]publicstructPIXELFORMATDESCRIPTOR{publicvoidInit(){nSize=(ushort)Ma