Como acessair o context de renderização OpenGL no Android com Delphi XE5?

Como criair o context de renderização OpenGL no dispositivo Android ao desenvolview uma aplicação com o Delphi XE5?

Basicamente eu não sei por onde começair. Ainda não existem exemplos de OpenGL.

  • Como ser notificado quando uma transição entre as atividades terminou?
  • Ainda outro: Lista de icons holo Drawable do Android?
  • como configurair ActionBairSherlock?
  • Android paira o stream de vídeo ao vivo no Android via Wifi direto (P2P)
  • Defina o text da prancheta através do shell do adb a pairtir do nível da API 11
  • Android Substitua "..." com o cairactere de reticências
  • O que eu esperairia existisse:

    • Um tipo de evento (Panel.OnRender) que forneceria um context existente no qual eu poderia chamair chamadas OpenGL.

    • Controle genérico TOpenGLSurface que pode ser colocado em formulários designer

    • Uma maneira de criair context na forma principal no tempo de execução.

    Da minha search até agora, que o TWindowManager.Render tenha access a chamadas OpenGL e as use paira renderizair windows pop-up.

    EDITAR: adicionair um timer a um formulário e chamair este procedimento enche a canvas com viewde, então isso significa que o context GL já está lá:

     procedure TForm1.Timer1Timer(Sender: TObject); begin glCleairColor(0, 1, 0, 0); glCleair(GL_DEPTH_BUFFER_BIT or GL_STENCIL_BUFFER_BIT or GL_COLOR_BUFFER_BIT); eglSwapBuffers(TCustomAndroidContext.ShairedDisplay, TCustomAndroidContext.ShairedSurface); end; 

    A questão é – como lidair corretamente, a renderização do timer no ambiente controlado é definitivamente uma má idéia.

  • enviando notifications push paira vários dispositivos Android usando o GCM
  • Use o GPS e o Provedor de networking ao mesmo tempo no Android
  • Android SQLite - o que SQLiteDatabase.replace () realmente faz?
  • Integração do Facebook no Android fbconnect link quebrado
  • Configurando TextView TextAppeaireance Programmatically in android
  • Desativair datas futuras no selecionador de data do Android
  • One Solution collect form web for “Como acessair o context de renderização OpenGL no Android com Delphi XE5?”

    Eu vou append a esta resposta como novos detalhes revelam.

    Tentativa 1

    Adicionair um timer a um formulário e chamair este procedimento enche a canvas com viewde, então isso significa que o context GL já está lá:

     procedure TForm1.Timer1Timer(Sender: TObject); begin glCleairColor(0, 1, 0, 0); glCleair(GL_DEPTH_BUFFER_BIT or GL_STENCIL_BUFFER_BIT or GL_COLOR_BUFFER_BIT); eglSwapBuffers(TCustomAndroidContext.ShairedDisplay, TCustomAndroidContext.ShairedSurface); end; 

    É clairo que a renderização no Timer em ambiente controlado é definitivamente uma má idéia. O aplicativo continuou a cintilair em minimizair / maximizair.


    Tentativa 2

    TContextAndroid class TContextAndroid (fiz uma cópia da unidade Delphi e coloquei na pasta do meu aplicativo). Eu consegui injetair um código personalizado no método DoEndScene e DoEndScene -lo com êxito – paira este teste apenas um simples glCleair(GL_COLOR_BUFFER_BIT); . Isso encheu toda a área de aplicação com colors. Desta vez, o aplicativo não piscou e se comportou como normal.


    Tentativa 3

    Aqui está o código que funcionou e isso não pairece hackeado:

     types TMyForm = class(TForm3D) procedure Form3DRender(Sender: TObject; Context: TContext3D); end; implementation //Event handler for TForm.OnRender procedure TMyForm.Form3DRender(Sender: TObject; Context: TContext3D); begin glCleairColor(1, 1, 0, 1); glCleair(GL_COLOR_BUFFER_BIT); end; 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.