2012-02-05 38 views
1

當我的窗口全屏顯示時,我必須做些什麼來獲得新的更高分辨率視圖的OpenGL渲染上下文(或更改現有的上下文)?如何在Lion中切換OpenGL全屏渲染?

眼下窗口委託我

- (NSSize)window:(NSWindow *)window willUseFullScreenContentSize:(NSSize)proposedSize { 
    return [theOpenGLView bounds].size; 
} 

這是相當沒有意義的,因爲我剛剛得到一個massize亞麻背景相同大小的窗口。 我試過返回[[NSScreen mainScreen] frame].size,但這只是把我的OpenGL窗口放在角落,屏幕的其餘部分被灰色的視圖背景覆蓋。我試圖更新我的glViewport和投影矩陣,並呼籲[myNSOpenGLContext update],但這也不起作用。

所有的蘋果文檔似乎是舊的全屏系統。如果有人能夠正確列舉所需的步驟,我將不勝感激。

回答

0

問題是我的視圖沒有自動調整大小,所以雖然窗口占據了整個屏幕,但視圖被修復了。現在我必須弄清楚如何使轉換看起來不可怕...

+0

你有沒有嘗試更新在NSOpenGLView重塑方法的視口? – TheAmateurProgrammer 2012-02-05 06:32:12

+0

目前過渡有什麼樣的恐怖?另外,你有沒有考慮在全屏轉換中使用舊式的淡出/淡出?這樣可以避免您需要以中等尺寸進行渲染,並且對多顯示器設置更友好。 – user57368 2012-02-07 02:02:04

+0

由於horredous我的意思是閃爍的VRAM垃圾遍佈。你說得對 - 我只是想出如何做我想做的事。我重寫'setFrame:'來更新我的OpenGL渲染器,但是轉換非常緩慢。我認爲我需要做的是渲染當前窗口,然後將整個屏幕尺寸渲染到屏幕外(對於紋理或幀緩衝區?),並以某種方式在這些窗口之間進行插值。 – mk12 2012-02-07 02:06:07