首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我的OPENGL GLFW窗口没有随时间更新颜色

我的OPENGL GLFW窗口没有随时间更新颜色
EN

Stack Overflow用户
提问于 2018-06-22 03:42:57
回答 1查看 161关注 0票数 -2

我正在阅读openGL超级圣经的第七版。

在我正在查看的项目中,背景颜色应该是在创建的窗口中随时间变化的背景颜色。我使用的所有项目和设置的源文件都可以在https://github.com/openglsuperbible/sb7code上找到。我正在Visual Studio 2017中运行它。

下面是输出窗口的输出:

代码语言:javascript
复制
'singlepoint.exe' (Win32): Loaded 'C:\Users\Danie\OneDrive\Documents\sb7code-master\sb7code-master\bin\singlepoint.exe'. Module was built without symbols.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\user32.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\win32u.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\gdi32.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\gdi32full.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcp_win.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ucrtbase.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\opengl32.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcrt.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\advapi32.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sechost.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\rpcrt4.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sspicli.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cryptbase.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\bcryptprimitives.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\vcruntime140.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\glu32.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\imm32.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\uxtheme.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\combase.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\winmm.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\winmmbase.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cfgmgr32.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\winmmbase.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\winmmbase.dll'
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\winmmbase.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\winmmbase.dll'
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\dwmapi.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msctf.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\oleaut32.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\System32\DriverStore\FileRepository\nvhm.inf_amd64_ebea877f10dfbbc7\nvinit.dll'. Cannot find or open the PDB file.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\version.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ig8icd32.dll'. Cannot find or open the PDB file.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\shell32.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\SHCore.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\windows.storage.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\shlwapi.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel.appcore.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\profapi.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\powrprof.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\fltLib.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\igdusc32.dll'. Cannot find or open the PDB file.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\wtsapi32.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\version.dll'
'singlepoint.exe' (Win32): Unloaded 'C:\Windows\System32\DriverStore\FileRepository\nvhm.inf_amd64_ebea877f10dfbbc7\nvinit.dll'
The thread 0x169c has exited with code 0 (0x0).
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\version.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\version.dll'
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\dxgi.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\d3d11.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ResourcePolicyClient.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\ResourcePolicyClient.dll'
'singlepoint.exe' (Win32): Loaded 'C:\Windows\System32\DriverStore\FileRepository\nvhm.inf_amd64_ebea877f10dfbbc7\nvinit.dll'. Cannot find or open the PDB file.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\version.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\igd10iumd32.dll'. Cannot find or open the PDB file.
'singlepoint.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\igd10iumd32.dll'
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\igd10iumd32.dll'. Cannot find or open the PDB file.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ncrypt.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\bcrypt.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\bcrypt.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\bcrypt.dll'
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntasn1.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\version.dll'
'singlepoint.exe' (Win32): Unloaded 'C:\Windows\System32\DriverStore\FileRepository\nvhm.inf_amd64_ebea877f10dfbbc7\nvinit.dll'
The thread 0x3168 has exited with code 0 (0x0).
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\TextInputFramework.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\CoreUIComponents.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\CoreMessaging.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntmarta.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\WinTypes.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\WinTypes.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\WinTypes.dll'
'singlepoint.exe' (Win32): Loaded 'C:\Windows\SysWOW64\WinTypes.dll'. Symbols loaded.
'singlepoint.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\WinTypes.dll'

我知道在输出中打印这些符号并不是很必要,因为它们主要是为了在DLL中出现错误时进行调试。然而,我觉得问题的根源在于这一行:'singlepoint.exe‘(Win32):已加载的'C:\Windows\System32\DriverStore\FileRepository\nvhm.inf_amd64_ebea877f10dfbbc7\nvinit.dll'.找不到或无法打开PDB文件。我可能完全错了,但这是我目前唯一能看到的不合时宜的事情。

此项目的源cpp文件:

代码语言:javascript
复制
 /*
      Copyright © 2012-2015 Graham Sellers

      Permission is hereby granted, free of charge, to any person obtaining a
     copy of this software and associated documentation files (the "Software"),
      to deal in the Software without restriction, including without limitation
      the rights to use, copy, modify, merge, publish, distribute, sublicense,
      and/or sell copies of the Software, and to permit persons to whom the
      Software is furnished to do so, subject to the following conditions:

      The above copyright notice and this permission notice (including the next
      paragraph) shall be included in all copies or substantial portions of the
      Software.

      THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
      LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
      FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
      DEALINGS IN THE SOFTWARE.
     */
 #include <sb7.h>

class simpleclear_app : public sb7::application
{
    void init()
    {
        static const char title[] = "OpenGL SuperBible - Simple Clear";

        sb7::application::init();

        memcpy(info.title, title, sizeof(title));
    }

    virtual void render(double currentTime)
    {
        static const GLfloat color[] = { (float)sin(currentTime*20)*2.5f+.5f,
                                         (float)cos(currentTime*20)*2.5f+.5f,
                                         0.0f, 
                                         1.0f};
        glClearBufferfv(GL_COLOR, 0, color);
    }
};

DECLARE_MAIN(simpleclear_app)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-22 04:52:51

代码语言:javascript
复制
virtual void render(double currentTime)
{
    static const GLfloat color[] = { (float)sin(currentTime*20)*2.5f+.5f,
                                     (float)cos(currentTime*20)*2.5f+.5f,
                                     0.0f, 
                                     1.0f};
    glClearBufferfv(GL_COLOR, 0, color);
}

您已将color标记为static。这意味着它只会在第一次调用这个函数时收到一个值,并且不会再被更新(因为它被标记为const,所以在初始化后不能根据未定义的行为进行更改)。删除static关键字,此函数的行为应该与您期望的一样。

此外,“找不到或打开PDB文件”错误也是无关紧要的,与您的问题无关。唯一的后果就是在调试器中单步执行某些函数变得更加困难。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50976414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档