gpt4 book ai didi

c++ - 是否可以仅使用 OpenGL 确定默认帧缓冲区的大小?

转载 作者:搜寻专家 更新时间:2023-10-31 01:37:28 25 4
gpt4 key购买 nike

我目前正在为我打算开发的游戏开发游戏引擎/框架。我正在将系统设计为通过抽象类和依赖注入(inject)尽可能地解耦。理想情况下,我的目标是让每个子系统不依赖于引擎的其他部分。

在我的渲染系统中,我想提供将视口(viewport)和剪刀/裁剪区域重置为当前渲染绑定(bind)目标大小的功能(无论是 OpenGL FrameBuffer、Direct3D RenderTarget 还是默认后备缓冲区),而无需必须让程序员跟踪它,而不必依赖窗口子系统/另一个库或编写系统相关代码。

目前我正在编写渲染子系统的 OpenGL 实现,我想检查是否可以单独使用 OpenGL 3.3 函数调用来获取后台缓冲区/默认帧缓冲区的大小。我以前使用 GLX/WGL 编写代码来执行此操作,但我想避免这种情况。

我遇到了之前提出的这个问题: How to get/set the width and height of the default framebuffer?

然而,并没有给出确凿的答案。关于获取视口(viewport)/剪刀区域的宽度/高度的答案只有在窗口永远不会改变的情况下才有效,这很可能在我的应用程序中,而另一个答案将不起作用,因为“默认”帧缓冲区不是实际的帧缓冲区对象,因此不能这样查询(如果评论者是正确的)

那么,是否有任何方法可以单独使用 OpenGL 3.3 动态确定默认帧缓冲区/后备缓冲区的大小,或者我是否需要依赖另一个子系统/编写平台相关代码?

最佳答案

需要结论性答案吗?结论性答复:否。

OpenGL 4.5 及其以下的所有版本不提供查询默认帧缓冲区范围的方法。它也不提供控制其大小的方法。

默认帧缓冲区由窗口拥有; OpenGL 默认的帧缓冲区对象只是一种绘制到其中的方法。

关于c++ - 是否可以仅使用 OpenGL 确定默认帧缓冲区的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34118291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com