首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我们必须在OpenGL中创建窗口后加载纹理?

为什么我们必须在OpenGL中创建窗口后加载纹理?
EN

Stack Overflow用户
提问于 2011-02-19 21:07:26
回答 2查看 307关注 0票数 3

在我的情况下,

代码语言:javascript
复制
glutInitWindowSize(w_walker*8, h_walker);
glutCreateWindow("walker");
loadTexture("./fighter512.png");

有效,但是

代码语言:javascript
复制
loadTexture("./fighter512.png");
glutInitWindowSize(w_walker*8, h_walker);
glutCreateWindow("walker");

没有。为什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-19 21:12:58

通常,在一些驱动程序/OpenGL实现中,创建窗口的行为会产生副作用,即决定纹理、屏幕外缓冲区和窗口本身的内存实际存在的位置,以及因此它将有多大。

如果不创建窗口(或者更准确地说是渲染上下文),很难(即不可能)确定在加载后将纹理放在哪里。

票数 1
EN

Stack Overflow用户

发布于 2011-02-20 05:40:34

OpenGL命令在OpenGL上下文中运行。GLUT仅在创建窗口后创建OpenGL上下文。使用PBuffers可以有一个没有窗口的OpenGL上下文。在X11/GLX中,创建PBuffers很简单;在Windows上,用户必须首先创建一个虚拟窗口才能访问用于创建PBuffer的OpenGL扩展,这需要事先有一个活动的OpenGL上下文。但是一旦创建了PBuffer和其上的OpenGL上下文,就不再需要伪窗口。

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

https://stackoverflow.com/questions/5050936

复制
相关文章

相似问题

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