/*
|
* Copyright (C) 2018 Baidu, Inc. All Rights Reserved.
|
*/
|
package com.example.datalibrary.view;
|
|
import android.content.Context;
|
import android.opengl.GLSurfaceView;
|
import android.util.AttributeSet;
|
|
import java.nio.ByteBuffer;
|
|
public class ColorSurfaceView extends GLSurfaceView {
|
/**
|
* 深度图的图像渲染器
|
*/
|
private ColorRenderer mRenderer;
|
|
public ColorSurfaceView(Context context) {
|
super(context);
|
init();
|
}
|
|
public ColorSurfaceView(Context context, AttributeSet attrs) {
|
super(context, attrs);
|
init();
|
}
|
|
/**
|
* 初始化
|
*/
|
private void init() {
|
// 创建一个OpenGL ES 2.0 context,将要使用2.0版的API
|
setEGLContextClientVersion(2);
|
// 创建一个渲染器
|
mRenderer = new ColorRenderer();
|
// 设置渲染器
|
setRenderer(mRenderer);
|
// 设置渲染模式
|
// GLSurfaceView.RENDERMODE_CONTINUOUSLY:持续型模式,以一定周期定时重新绘制view
|
// GLSurfaceView.RENDERMODE_WHEN_DIRTY:通知型模式,只有在绘制数据改变时才绘制view
|
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
|
}
|
|
/**
|
* 渲染深度图数据
|
*
|
* @param buffer
|
*/
|
public void updateVertices(ByteBuffer buffer) {
|
// 接收视频流的帧数据
|
mRenderer.setRgbBuffer(buffer);
|
// 执行画面渲染,调用Renderer的相关方法
|
requestRender();
|
}
|
}
|