C 没有glwf/glut的opengl简单示例

C 没有glwf/glut的opengl简单示例,c,winapi,opengl,glew,C,Winapi,Opengl,Glew,我正在尝试编写一个基本的OpenGL循环(没有GLWF和GLUT;只有GLEW),它除了清除窗口外什么也不做。 但是,窗口保持为白色,窗口的颜色未清除为红色 你能找出代码不起作用的原因吗? 关于我的代码还有其他建议吗?有什么可以做得更好 /*Window is created using CreateWindowExA()*/ /* glewInit() etc */ RenderingContext = wglCreateContextAttribsARB(DeviceContex

我正在尝试编写一个基本的OpenGL循环(没有GLWF和GLUT;只有GLEW),它除了清除窗口外什么也不做。 但是,窗口保持为白色,窗口的颜色未清除为红色

你能找出代码不起作用的原因吗? 关于我的代码还有其他建议吗?有什么可以做得更好

/*Window is created using CreateWindowExA()*/ 
/* glewInit() etc  */
    RenderingContext = wglCreateContextAttribsARB(DeviceContext, 0, version_attribs);
    if (!wglMakeCurrent(DeviceContext, RenderingContext))
    {
        OutputDebugStringA("Error\n");
        exit(-1);
    }   
    bool Running = true;
    while (Running){
            glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
            // Simply clear the window with red
            static const GLfloat red[] = { 1.0f, 0.0f, 0.0f, 1.0f };
            glClearBufferfv(GL_COLOR, 0, red);
            // here some other code
    }

任何gl命令都将在当前上下文中执行。 使用wglMakeCurrent(NULL,NULL)表示“排除此线程的所有gl命令”

而是使用
wglMakeCurrent(此窗口设备,我希望使用的上下文)

编辑: 此外,渲染是对后帧缓冲区进行的(我假设您使用的是双缓冲像素格式)。要将其显示到窗口(前帧缓冲区),需要调用
wglSwapBuffers

编辑2: 我建议你通读这本书。

它显示了一个创建窗口和上下文的示例。

这不起作用,仍然是写屏幕。我尝试过wglMakeCurrent(DeviceContext,RenderingContext);我已经编辑了我的答案。不管怎么说,你发布的代码太少了,可能还有很多其他东西失败了。它可以工作,谢谢,屏幕是红色的:)