2014-02-24 45 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