2011-06-28 3 views
14

(経験豊富なCプログラマ、事前シェーダ、固定機能のオープンGL。有能なJavaプログラマ)EGL(例えばJava)の

私は、Android上でGLESに取り組んできましたし、実行するための例を得ています(ネイティブとJavaの両方)。特に、テクスチャ付きの三角形の例です。 Khronos EGLとandroid GLESインターフェースの "関係"が私を完全に混乱させています。

これらのパラレルで独立したインターフェイス(API)はありますか? EGLはプラットフォームに依存しない(ニュートラルな)インターフェースですか? EGLはGLES 1.0と1.1を完全にサポートしているようですが、ES 2.0(Android上)はサポートしていませんか?

だから、完全に(Android上)GLES 2.0をサポートしていません EGLがプラットフォーム中立、パラレルインタフェース、するになっているように私には見えるが、したがって、GLES 2.0コード(Android版)を作成している場合は、EGLxxx APIではなくGLxxx APIを使用するほうがよい(とにかくGLxxx APIに頼らざるを得ない)。私が言う限りでは、>HAVE <はES 2.0 APIのサブセットしかサポートしていないため、EGLを何でも使用することはできません。

(すべての例/書籍/参照のいずれか二つは、ネイティブインタフェースを使用していますかのみEGL 1.1の機能を使用してミックスし、アム私はここに根本的な何かが足りない?)

答えて

21

EGLは、OpenGL ESに補完するものです。 EGLは、eglCreateWindowSurfaceのような関数を使って描画するサーフェスを取得するために使用され、OpenGL ESでそのサーフェスに描画できます。その役割はGLX/WGL/CGLに似ています。

EGLがOpenGL ES 2.0をサポートするコンテキストを提供できるかどうかは、プラットフォームによって異なる場合がありますが、AndroidデバイスがES 2.0およびEGLをサポートしている場合、EGLからそのようなコンテキストを取得できるはずです。 EGLConfigを要求するときは、EGL_RENDERABLE_TYPE属性とEGL_OPENGL_ES2_BIT属性を調べてください。

http://www.khronos.org/files/egl-1-4-quick-reference-card.pdf

+0

答えとリンクをありがとう、私はES refを持っています。 EGLカードではありません。私はより具体的なフォローアップの質問[ここ](http://stackoverflow.com/questions/6510964/how-to-get-an-egl-display-context-to-a-specific-glsurfaceview)を投稿しました – Vanderdeckken

+0

@ Vanderdeckkenそしてあなたの質問に正しく答えるならば、この答えをアップ・ボートして(そして受け入れてください)。 –

14

Android上EGLは、適切にどこにでも説明されていないようですが、私は一緒にうまくいけば、物事を明確にすべきいくつかのメモhereを置きます。