Google cardBoard Android API (十五):两个接口中的CardboardView.Renderer
2016-03-21 15:31
615 查看
CardboardView.Renderer
public static interface CardboardView.RendererInterface for renderers who need to handle all the stereo rendering details by themselves.
Public Methods
abstract void | onDrawFrame(HeadTransform headTransform, Eye leftEye, Eye rightEye) |
abstract void | onFinishFrame(Viewport viewport) |
abstract void | onRendererShutdown() |
abstract void | onSurfaceChanged(int width, int height) |
abstract void | onSurfaceCreated(EGLConfig config) |
Public Methods
public abstract void onDrawFrame (HeadTransform headTransform, Eye leftEye, EyerightEye)
Requests to draw a new frame.The implementor is assumed to handle all stereoscopic details by itself by making use of the provided head transformation and eye parameters.
If distortion correction is enabled the GL context will be set to draw into a framebuffer backed by a texture at the time of this call. If an implementor needs to change the current framebuffer, it must be reset back afterwards to the one obtained via
glGetIntegerv(GL_FRAMEBUFFER_BINDING, ...)at the beginning of this call.
If VR mode is disabled, instead of providing the parameters of two eyes, the left eye will contain monocular rendering parameters and the right eye will be null. No distortion correction will take place in that case. For monocular rendering, the implementor
should feel free to ignore the FieldOfView and instead create a perspective matrix with whatever field of view is desired for monocular rendering (ScreenParams.getWidth()/ScreenParams.getHeight() can provide the aspect ratio). See the
setVRModeEnabledmethod
for details.
Parameters
headTransform | The head transformation for this frame, independent to any eyes. |
---|---|
leftEye | Parameters of the left eye, or a single eye if VR mode is disabled. |
rightEye | Parameters of the right eye, or null if VR mode is disabled. |
public abstract void onFinishFrame (Viewport viewport)
Called before a frame is finished.By the time of this call, the frame contents have been already drawn and, if enabled, distortion correction has been applied.
This method allows to perform additional overlay rendering over the frame results. For example, it could be used to draw markers that help users to properly center their device screens in their Cardboards.
A viewport object describing the bounds of the full surface is provided, but not set in the GL context.
Rendererimplementors
are responsible of setting the viewport if needed.
Parameters
viewport | Viewport of the full GL surface. To be set by renderers if needed. |
---|
public abstract void onRendererShutdown ()
Called on the renderer thread when the thread is shutting down.Allows releasing GL resources and performing shutdown operations in the renderer thread. Called only if there was a previous call to
onSurfaceCreated.
public abstract void onSurfaceChanged (int width, int height)
Called when there is a change in the surface dimensions.Viewport, field of view and projection details are automatically updated.
Note that the eye parameters passed to
onDrawFrame(HeadTransform, Eye, Eye)are computed under the assumption that the surface dimensions correspond to a fullscreen landscape view. Any other configuration is likely to lead to convergence problems.
Parameters
width | New width of the surface in pixels. |
---|---|
height | New height of the surface in pixels. |
public abstract void onSurfaceCreated (EGLConfig config)
Called when the surface is created or recreated.Parameters
config | The EGL configuration used when creating the surface. |
---|
相关文章推荐
- android系统各个输出log对应层次文件
- Google cardBoard Android API (十四):ViewPort
- Android ViewPager无限循环实现底部小圆点动态滑动
- Google cardBoard Android API (十三):ScreenParams
- android studio的使用
- Android开发-ADT Bundle安装
- Android 监听各个Acitivity的生命周期
- Google cardBoard Android API (十二):HeadTransform
- Android启动过程深入解析
- Android 底部导航控件实例代码
- Google cardBoard Android API (十一):HeadMountedDisplayManager
- [待解决问题] 启动不了Android工程
- 跟着Google学Android —— 1.2 第一次当然是献给Hello World
- Android中ListView点击事件失效的解决办法
- Android动画分类和详解
- Google cardBoard Android API (十):HeadMountedDisplay
- Android学习之解决ScrollView嵌套ListView显示的错误
- Android实现简单的分批加载ListView
- 掌握AndroidAnnotations进行快速Android开发
- Google cardBoard Android API (九):FieldOfView