【问题标题】:OpenGL changing/reloading texturesOpenGL更改/重新加载纹理
【发布时间】:2012-04-18 02:03:35
【问题描述】:
glDeleteTextures(total, &Item::texture[0]);
glGenTextures(total, &Item::texture[0]);

迭代所有图像,总计;

glBindTexture( GL_TEXTURE_2D, Item::texture[i] );
glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, t.width(), t.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, t.bits() );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );

尝试重新加载纹理,但没有。纹理保持不变。有什么想法可以/应该如何处理?为了清楚起见,我正在尝试用新的纹理重新加载纹理,最好不要更改纹理的数量(因为可能会有很多变化)。

我正在使用 Qt、C++。上面的代码在一个单独的 GLwidget 中的静态函数中。

【问题讨论】:

  • 有趣的是,您总是删除索引 0 处的纹理并在同一索引 (0) 处生成一个新纹理,但随后您将纹理绑定到索引 i。有些东西闻起来很有趣..
  • @karlphillip total 是纹理计数,第二个参数是数组起始指针。但是,当只是数据发生变化时,为什么要一次又一次地删除和重新创建纹理呢?
  • 嗯..你可能是对的,去看看。
  • 那么除了删除和创建之外,我如何才能以其他方式更改数据?
  • 在进行这些调用时,是否有可能绑定到错误的渲染上下文,或者根本没有渲染上下文?

标签: c++ qt opengl


【解决方案1】:

当您进行这些调用时,您是否会绑定到错误的渲染上下文,或者根本没有渲染上下文?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2013-11-27
    • 2017-06-11
    相关资源
    最近更新 更多