Android:egl例子

2018-05-17  本文已影响105人  我在等你回复可你没回

egl的最基本流程代码,记录一下。

void egl_demo() 
{  
  EGLDisplay display = eglGetDisplay (EGL_DEFAULT_DISPLAY); //获取显示器
   eglInitialize(display , 0, 0);                  //初始化显示器

  EGLConfig config;
   eglChooseConfig(display , attribs, & config, 1, &numConfigs );  //初始化配置

  EGLSurface surface = eglCreateWindowSurface(display, config, ANativeWindow , NULL);  //创建surface
  EGLContext  context = eglCreateContext (display, config, NULL , NULL);//创建场景
  eglMakeCurrent (display, surface, surface , context);//绑定线程

  while(true){
    //opengl绘制
    glxx();
    
    eglSwapBuffers(display , surface );
  }

 eglDestroyContext( display , context );//销毁surface
  eglDestroySurface(display , surface );//销毁场景
  eglTerminate(display );
}

因为这个点比较大后续会更新:

基本概念:

一.离屏(offscreen)渲染

OpenGL中,GPU屏幕渲染有两种方式:

(1)On-Screen Rendering (当前屏幕渲染)

指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区进行。

(2)Off-Screen Rendering (离屏渲染)

指的是在GPU在当前屏幕缓冲区以外开辟一个缓冲区进行渲染操作。

当前屏幕渲染不需要额外创建新的缓存,也不需要开启新的上下文,相对于离屏渲染性能更好。但是受当前屏幕渲染的局限因素限制(只有自身上下文、屏幕缓存有限等),当前屏幕渲染有些情况下的渲染解决不了的,就使用到离屏渲染。

上一篇 下一篇

猜你喜欢

热点阅读