簡體   English   中英

是否可以僅使用OpenGL確定默認幀緩沖區的大小?

[英]Is it possible to determine the size of the default framebuffer using OpenGL only?

我目前正在為我打算開發的游戲開發游戲引擎/框架。 我正在設計通過抽象類和依賴注入使系統盡可能分離的系統。 理想情況下,我的目標是使每個子系統都不依賴於引擎的其他部分。

在我的渲染系統中,我希望能夠將視口和剪刀/剪切區域重置為當前綁定目標的大小以進行渲染(可以是OpenGL FrameBuffer,Direct3D RenderTarget或默認的后緩沖),而無需獲取程序員可以跟蹤它,而不必依賴於窗口子系統/另一個庫,也不必編寫與系統有關的代碼。

目前,我正在對渲染子系統的OpenGL實現進行編碼,我想檢查是否可以僅使用OpenGL 3.3函數調用來獲得后緩沖區/默認幀緩沖區的大小。 我曾經使用GLX / WGL編寫過代碼,盡管我想避免這種情況。

我遇到了之前提出的這個問題: 如何獲取/設置默認幀緩沖區的寬度和高度?

但是,沒有給出結論性的答案。 關於獲取視口/剪刀區域的寬度/高度的答案僅在窗口永不更改的情況下才有效,這在我的應用程序中可能很好,而其他答案將不起作用,因為“默認”幀緩沖區不是實際的幀緩沖區對象,因此無法這樣查詢(如果注釋器正確)

因此,是否有任何方法可以單獨使用OpenGL 3.3快速確定默認幀緩沖區/后緩沖區的大小,還是需要依賴於另一個子系統/寫入平台相關的代碼?

想要確定的答案? 給出的結論性答案:否。

OpenGL 4.5及其下面的所有版本均未提供查詢默認幀緩沖區范圍的方法。 它也沒有提供控制其大小的方法。

窗口擁有默認的幀緩沖區。 OpenGL默認的framebuffer對象僅僅是一種吸收它的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM