2014-02-24 71 views
0

我试图创建我自己的上下文和窗口从头开始渲染。 (我不想使用GLFW/SFML或其他任何其他库!)。假上下文创建创建一个版本1.1的OpenGL

im当前存在的问题是我创建的用于加载初始化GLEW的Fake上下文仅为版本1.1。出于某种原因,它给了我通用的微软渲染器。我需要一个加速的渲染器。

我的猜测是,我做错了什么,当我创建了PIXELFORMATDESCRIPTOR ..

这是我如何创建上下文:

PIXELFORMATDESCRIPTOR pfd = 
{ 
    sizeof(PIXELFORMATDESCRIPTOR), 
    1, 
    PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, //Flags 
    PFD_TYPE_RGBA,   //The kind of framebuffer. RGBA or palette. 
    32,      //Colordepth of the framebuffer. 
    0, 0, 0, 0, 0, 0, 
    0, 
    0, 
    0, 
    0, 0, 0, 0, 
    24,      //Number of bits for the depthbuffer 
    8,      //Number of bits for the stencilbuffer 
    0,      //Number of Aux buffers in the framebuffer. 
    PFD_MAIN_PLANE, 
    0, 
    0, 0, 0 
}; 

int iPixelFormat = ChoosePixelFormat(m_deviceContext, &pfd); 
if(iPixelFormat == 0) 
    return false; 

error = SetPixelFormat(m_deviceContext, iPixelFormat, &pfd); 
if(error != 1) 
    return false; 

m_context = wglCreateContext(m_deviceContext); 
error = wglMakeCurrent(m_deviceContext, m_context); 

glewExperimental = GL_TRUE; 
if(glewInit() != GLEW_OK) 
    return false; 

如果我打印供应商字符串&渲染这个字符串是我得到的:

Vendor: Microsoft CorporationGraphics 
Renderer: GDI Generic 

编辑:我试图编译在发布模式,而不是(Visual Studio 2012)现在我得到合适的供应商&渲染器..

+0

其中是您用来获取供应商字符串的代码? – Jherico

+0

我在初始化GLEW后立即获得供应商字符串。 – ADeadRat

回答

0

如果硬件不支持您提供的颜色,深度,模板和标志的组合,您可能会以软件渲染窗口结束。

+0

你有推荐的组合吗?我一直在尝试从OpenGL官方wiki上推荐的所有内容到随机猜测和组合,并且一直在为其他人工作。 难道我还有什么不对吗,你能想到吗? 我的显卡应该支持4.4与我安装的驱动程序。 – ADeadRat

+0

不是。我倾向于使用GLFW来创建窗口而不是本地API。 – Jherico