doum
6 天以前 2b287056e2f59518888d05a1bbc7e5a55fbd84d5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package com.example.datalibrary.deptrum;
 
public class GLDisplay {
    private boolean mIsDisplayStarted;
    private GLFrameRenderer render;
 
    /**
     * 预览渲染
     *
     * @param view               需要渲染的视图
     * @param displayOrientation 预览方向
     * @param displayMirror      预览镜像
     * @param displayOrientation 预览方向
     * @param data               预览的图像数据
     * @param renderWidth        预览宽
     * @param renderHeight       预览高
     * @param dataType           图像数据类型 0:yuv420p 1:rgb24
     * @return void
     */
    public synchronized void render(
            GLFrameSurface view,
            int displayOrientation,
            boolean displayMirror,
            byte[] data,
            int renderWidth,
            int renderHeight,
            int dataType) {
        render = view.getCurrentRenderer();
        render.setResolution(renderWidth, renderHeight);
        if (view != null && render != null) {
            if (!mIsDisplayStarted) {
                render.update(renderWidth, renderHeight, dataType);
                view.onResume();
                mIsDisplayStarted = true;
            }
            render.setDisplayOrientation(displayOrientation);
            render.displayMirror(displayMirror);
            render.update(data, dataType);
        }
    }
 
    /**
     * 释放预览
     *
     * @return void
     */
    public void release() {
        if (render != null) {
            render.release();
            this.mIsDisplayStarted = false;
        }
    }
}