EGL

Android : 2010. 2. 6. 11:11
반응형
출처 : http://blog.daum.net/baramjin/16010958

관련 내용은 http://www.khronos.org/egl/ 의 내용을 번역한 것이다.

 

EGL

EGL at a glance

EGL provides mechanisms for creating rendering surfaces onto which client APIs like OpenGL ES and OpenVG can draw, creates graphics contexts for client APIs, and synchronizes drawing by client APIs as well as native platform rendering APIs. This enables seamless rendering using both OpenGL ES and OpenVG for high-performance, accelerated, mixed-mode 2D and 3D rendering.

 

EGL은 OpenGL ES, OpenVG 와 같은 클라이언트 API가 그림을 그리거나, Graphic context를 생성하거나, nativa platfrom rendering API뿐만 아니라 클라이언트 API에 의해서 그려진 내용을 동기화할 수 있는 rendering surface를 생성할 수 있는 방법을 제공한다.

이것은 고성능, 가속화된 2D와 3D 혼합 redering을 위하여 OpenGL ES와 OpenVG를 사용하는 한결같은 rendering을 가능하게 한다.

 

(흠 번역해도 말이 이해가 바로 되지는 않네요? 중요한 것은 redering surface를 생성할 수 있는 방법을 제공한다는 것이겠죠)

EGL (Native Platform Graphics Interface)

EGL Native Platform Graphics Interface is an interface portable layer for graphics resource management - and works between rendering APIs such as OpenGL ES or OpenVG and the underlying native platform window system. Learn More...

The EGL 1.4 specification, header files, and optional extension specifications are available in the Khronos Registry

 

EGL Native Platform Graphic Interface는 graphics resource 관리를 위한 interface portable layer이다. OpenGL ES나 OpenVG와 같은 rendering API와 native platform window system(X window와 windows와 같은 GUI 기반의 windows UI platform을 의미) 사이에서 동작한다.

 

 

 

EGL이 하는 것을 정리하면....

 

1. 클라이언트 API들이 그림을 그리거나 공유할 수 있는 rendering surfaces(windows, pbuffers, pixmaps)를 생성하는 매커니즘 제공 

(결국 OpenGL ES나 OpenVG를 위한 그림판을 제공한다고 생각하면 되겠네요, surface는 아무래도 그림판이라고 이해하는 것이 가장 좋을 듯...)

2. 클라이언트 API들을 위한 graphic contexts를 생성하거나 관리하는 방법

3. nativa platform rendering APIs들과 클라이언트 API들에 의해 그려진 내용을 동기화(synchronize) 하는 방법

(이 내용을 안드로이드 개념에서 이해하면 결국 Skia로 그려진 2D내용과 OpenGL ES에 그려진 3D 내용을 합칠수 있다는 말로 이해되지요?)

 

 

 

 

안드로이드의 \frameworks\base\opengl\include\EGL을 보면 EGL 1.2 가 포팅되어 있는 것 같다.

안드로이드에서 EGL에 대하여 봐야 하는 이유는 SufaceFlinger의 초기화 과정을 보면 EGL을 이용하여 display, surface, context 등을 초기화하는 과정이 있기 때문이다.

반응형
Posted by Real_G