我知道这是一个微不足道的问题,但我从glGet()
的文档中找不到任何似乎有用的信息。我使用我的纹理作为精灵,所以我必须跟踪他们的尺寸为texels /像素。如何确定texels中的OpenGL纹理大小?
当我使用glTexImage2D()
创建纹理时,我需要将像素数据数组的大小传递给它。但是OpenGL将它存储在任何地方,还是必须在我的代码中跟踪它们? (这种感觉别扭,因为客户端代码将仍然能够与glTexImage2D()
/glTexSubImage2D()
/glCopyTexImage2D()
等电话覆盖的纹理,而没有相应地改变尺寸,从而造成视觉失真。)
虽然理论上可以冲洗管道,但我认真地怀疑你会发现最近的实现,实际上冲洗。现在大多数司机都在存储绝大多数国家客户端。 – Bahbar 2010-01-08 13:27:59
我可以看到纹理的尺寸可以像客户端缓存那样简单,但其他的'glGet *'查询可能取决于要渲染的内容来回答。可以说,将纹理元数据保存在对象中的设计(更快地直接访问数据成员而不是调用驱动程序)是更好的设计。无论如何,几乎所有我读过的书籍都会导致拖延。你有哪些驱动程序缓存哪些状态信息的引用?这将非常方便。 – gavinb 2010-01-09 01:18:16
谢谢 - 它完全有道理。我的冲突就在这里,我的框架的编写功能意味着客户端不会落后于它。我猜测,到目前为止,这些细节都被记录下来,所以期望如果客户想要使用框架并提供所需功能,他们不会((觉得他们)必须)绕开它。 – zyndor 2010-01-09 07:23:26