簡體   English   中英

可以在EAGLLayer上使用Quartz 2D繪圖嗎?

[英]Drawing with Quartz 2D on top of EAGLLayer possible?

在我的應用中,我有一個均衡器,后面帶有一個可視化器。

均衡器是一系列點,這些點是圖像視圖,並使用Quartz 2D在它們之間繪制路徑(底部和左側的刻度線分別表示頻率和增益量)。 其后是使用帶有CAEAGLLayer的OpenGL完成的可視化程序。

設置方式是在我的視圖控制器主視圖的子視圖中處理可視化器,在其上方是繪制路徑的主視圖的另一個子視圖。 在它們兩個上方均是eq點的圖像視圖。

發生的情況是,路徑繪制得很好,直到開始播放一首歌曲,然后可視化程序開始繪制。 好像它擦掉了上面的Quartz 2D。 即使每次繪制時都在其上方的視圖上調用setNeedsDisplay也不起作用。 像OpenGL被授予在此繪制的專有訪問權限。 但是,UIImageView eq點保持可見。

有沒有什么方法可以在帶有gl層的視圖頂部使用Quartz 2D? 我不希望使用OpenGL來繪制路徑和使用OpenGL的刻度線,因為我將不得不繪制到512x512或1024x1024的紋理並對其進行縮放,因此它看起來並不完美,而且我已經有了工作的Quartz代碼來繪制一切。

有沒有什么方法可以在帶有gl層的視圖頂部使用Quartz 2D?

是的,這是明確支持的。 文檔甚至提供了有關如何優化此配置圖紙的詳細信息。

我懷疑您的視圖實際上是錯誤的順序,而GL視圖居於首位。 首先,確保您的GL視圖標記為opaque (出於性能考慮,還因為如果順序錯誤,它會使其變得更加明顯)。 然后檢查您的視圖順序(檢查主視圖的subviews )。

暫無
暫無

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

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