1

VisualStudio2008を使用したWindowsでの簡単なプログラムがあります。

私のコードでは、gl関数、つまり#include GLES2/gl2.hと#includeEGL/egl.hを使用しています。

コードでは、コンテキストの初期化にEGLを使用しています。これを以下に示します。

ウィンドウとCreateEGLContextを作成します。

結果を画面に表示していません。しかし、メモリに保存しているので、ディスプレイとサーフェスバッファを交換していません。

このコードからegl.hを削除したい私の問題は、どのようにして可能ですか。

誰か私に何か考えを教えてもらえますか?前もって感謝します

GLboolean  CreateWindow1 ( ESContext *esContext, const char* title, GLint width, GLint height,      GLuint flags )
{
   GLuint attribList[] =
         {
      EGL_RED_SIZE,       5,
     EGL_GREEN_SIZE,     6,
   EGL_BLUE_SIZE,      5,
   EGL_ALPHA_SIZE,     (flags & ES_WINDOW_ALPHA) ? 8 : EGL_DONT_CARE,
   EGL_DEPTH_SIZE,     (flags & ES_WINDOW_DEPTH) ? 8 : EGL_DONT_CARE,
   EGL_STENCIL_SIZE,   (flags & ES_WINDOW_STENCIL) ? 8 : EGL_DONT_CARE,
   EGL_SAMPLE_BUFFERS, (flags & ES_WINDOW_MULTISAMPLE) ? 1 : 0,
   EGL_NONE
  };

   if ( esContext == NULL )
  {
     return GL_FALSE;
  }

  esContext->width = width;
  esContext->height = height;

  if ( !WinCreate ( esContext, title) )
    {
    return GL_FALSE;
    }


     if ( !CreateEGLContext ( esContext->hWnd,  &esContext->eglDisplay,  &esContext->eglContext,    &esContext->eglSurface,
                    attribList) )
  {
  return GL_FALSE;
  }


  return GL_TRUE;
 }

私の答えは私が想定する解決策です。または、他のフレームワークを使用したい場合は、独自のフレームワークを作成できます:)

@Nicol Bolas:編集していただきありがとうございます。OpenGLを実行している人がOpenGLESをOpenGLのサブAPLとして理解しているため、質問にOpenGLを追加します。役立つ編集を行うことをお勧めします。複数の編集を行う前に質問を投稿する機能を失いました

4

1 に答える 1

1

EGLは、OpenGL ES 2.0(およびその他のKhronosグラフィックスAPI)と、GNU / Linuxシステムで一般的なXウィンドウシステム、Microsoft Windows、Mac OS XのQuartzなど、コンピューターで実行されているネイティブウィンドウシステムとの間に「接着」レイヤーを提供します。EGLは、描画面のタイプ、またはその問題に関する基礎となるシステムの他の特性を判別する前に、ウィンドウシステムとの通信チャネルを開く必要があります。すべてのウィンドウシステムには異なるセマンティクスがあるため、EGLは基本的な不透明(OPAQUE)型(EGLDisplay)を提供します。これは、ネイティブウィンドウシステムとインターフェイスするためのすべてのシステム依存関係をカプセル化します。EGLを使用するアプリケーションが実行する必要がある最初の操作は、ローカルEGLディスプレイとの接続を作成して初期化することです。

于 2012-07-02T08:56:36.043 に答える