我想知道我的默认帧缓冲区的尺寸。
我读到将视口设置为特定值不会影响/设置帧缓冲区的尺寸。
是否有任何 GL 要求?
您无法通过 OpenGL 调用设置默认帧缓冲区的大小。它是窗口的大小,由窗口系统接口(例如Android上的EGL)控制。如果您想控制它,这必须作为初始窗口/表面/上下文设置的一部分进行,其中细节取决于平台。
我不知道有哪个调用专门获取默认帧缓冲区的大小。但你可以轻松地间接获得它。视口和剪刀矩形的默认值都对应于窗口的大小。所以如果你得到其中任何一个在修改它们之前,它会给你窗口的大小。
来自规范中的第 2.12.1 节“控制视口”:
在初始状态下,w 和 h 分别设置为 GL 将在其中进行渲染的窗口的宽度和高度。
来自规范中第 4.1.2 节“剪刀测试”:
初始状态left=bottom=0;宽度和高度由 GL 窗口的大小决定。
因此,您可以通过以下任一方式获取默认帧缓冲区大小:
GLint dims[4] = {0};
glGetIntegerv(GL_VIEWPORT, dims);
GLint fbWidth = dims[2];
GLint fbHeight = dims[3];
or:
GLint dims[4] = {0};
glGetIntegerv(GL_SCISSOR_BOX, dims);
GLint fbWidth = dims[2];
GLint fbHeight = dims[3];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)