我一直想弄明白這一點,但這是我想要做的與我的NSOpenGLView。目前,NSOpenGLView覆蓋了窗口的整個區域,我想在NSOpenGLView上添加按鈕,nsviews和圖像。我瀏覽網頁,發現[myOpenGLView setWantsLayer:YES];
可以讓我做像[myOpenGLView addSubView:someView]
這樣的事情。嗯,這是我得到的結果:-setWantsLayer導致NSOpenGLView失真?
(有點壞榜樣,因爲我是看家庭蓋伊,但證明了一個事實,即視頻內存緩衝區抵達該處攔截)
正如你所看到的,它將一些視頻內存緩衝區扭曲到窗口上。現在我正在做一些調試,問題在於-setWantsLayer
。一旦我在我的代碼中註釋掉該行,所有的OpenGL東西都會正確顯示。
(這是我應該得到......)
所以我的問題是我怎麼能正確地顯示我的OpenGL視圖,並在同一時間-addSubViews
?
蘋果有這方面的工作被稱爲「LayerBackedOpenGLView」(http://developer.apple.com/library/mac/#samplecode/LayerBackedOpenGLView/Introduction/Intro.html)的一個很好的例子項目,我一直在尋找它的好時機,我不知道我在裏面做什麼不同。我注意到的一件事是,不使用NSOpenGLView,Apple使用NSView並將類更改爲子類NSOpenGLView的自定義類,同時我使用NSOpenGLView並將該類更改爲自定義類,該類自動再次對NSOpenGLView進行子類化。不知道這是否會導致任何問題,但如果將其更改爲NSView,我仍然會遇到同樣的問題。
任何幫助,非常感謝!
嫁給我和IIIII會買youuuu cheeeewwwwwwing guuum! ;-) –