簡體   English   中英

我可以在OSX中使用EGL嗎?

[英]Can I use EGL in OSX?

我試圖在C ++應用程序中使用Cairo庫,利用它在Mac中的GL加速。 (我使用Quartz后端進行了相同的測試,但性能令人失望。)它說它支持EGL和GLX。 使用GLX需要(外部安裝) XQuartz並打開一個XWindow,所以我傾向於EGL:

Apple的編程指南頁面告訴我們使用NSOpenGL *, 這個頁面和其他人說它使用CGL。

這個 (2012)頁面說Mac有EAGL,它只與EGL類似(我想它指的是IOS,而不是MAC,因為它的EAGL參考鏈接到IOS幫助頁面)。

Angle說它支持EGL但它適用於Windows中的Direct3D,據我所知(?)

據說GLFW v3支持(在未來的版本中?)但是通過GLX,它被稱為(?)。

Mali表示它有一個適用於Mac的模擬器,但我不知道它是加速還是僅用於其硬件(它還說它只支持不同平台上的EGL子集)。

當使用EGL時,大多數鏈接指的是移動設備。 我使用的是Mac OS 10.8和XCode 4.6。 目前的情況是什么/我如何(如果可以的話)在Mac(現在)中使用EGL?

是。 cairo已被移植到使用nsopengl。 我會告訴你如何。 如果您有興趣,請使用示例代碼。 性能比quaetz gl快得多。

這是https://github.com/SRA-SiliconValley/cairogles/

clone cairo,checkout branch nsgl。 這個cairo是我們的cairo 1.12.14的分支,與上游cairo相比具有以下增強功能

  1. 支持OpenGL ES 3.0,並支持OpenGL ES 2.0角度MSAA擴展
  2. 用於msaa合成器的填充圓的新凸曲面細分器
  3. 新的cairo API - cairo_rounded_rectangle() - 它針對MSAA合成器進行了優化
  4. 支持四個后端的高斯模糊:GL / GLES,石英,xcb和圖像
  5. 支持四個后端的投影和插入:GL / GLES,石英,xcv和帶有shaow緩存的圖像
  6. 當筆划寬度= 1時支持更快的筆划 - 我們稱之為發際線筆划
  7. 為NSOpenGL添加集成
  8. 各種錯誤修復和優化。

在Mac OSX上,您有兩種選擇:GLX或NSOpenGL - 它們是互斥的。 你可以從macport獲得mesa glx。 1.編譯NSOpenGL - ./configure --prefix = your_install_location --enable-gl = yes --enable-nsgl = yes --enable-glx = no --enable-egl = no

  1. 要編譯GLX - ./configure --prefix = your_install_location --enable-gl = yes --enable-glx = yes --enable-nsgl = no --enable-egl = no。

如果你對egl感興趣(在Mac上沒有,但是linux上的mesa 9.1+以及各種嵌入式平台表格有egl)./configure --prefix = your_install_location --enable-gl = no --enable-egl = yes - -enable-glesv2 = yes --enable-glesv3 = no =====這為gles2驅動程序編譯。

./confgure --prefix = your_install_location --enable-gl = no --enable-egl = yes --enable-glesv2 = no --enable-glesv3 = yes ====這為glesv3驅動程序編譯(mesa 9.1+已經glesv3)

您可以使用CFLAGS =“ - g”進行調試,或者使用CFLAGS =“ - O2”進行優化。

cairo gl / gles有3個GL合成器(GL / GLES后端的渲染路徑)。 默認的是span compositor,它是AA的軟件模擬並且很慢。 如果您的驅動程序支持MSAA,請使用msaa compositor。 要使用MSAA合成器,可以在終端中導出CAIRO_GL_COMPOSITOR = msaa,也可以在程序中輸出setenv()。

我有示例代碼來顯示石英,xcv,圖像,glx,凝膠或nsgl的cairo。 如果您有興趣,我可以寄給您。

歡迎任何錯誤報告/補丁。 我還沒有時間讓wgl(MS windows)工作。 另外,為cairo設置一個d3d后端會很好,我只是沒有時間去做 - 在todo列表上。

請享用

你絕對可以使用角度:

#define GL_GLEXT_PROTOTYPES
#include <GLES2/gl2.h>
#include <EGL/egl.h>

暫無
暫無

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

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