GLCanvasManager.java 2.67 KB
Newer Older
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
1 2
package com.projectseptember.RNGL;

Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
3
import android.support.annotation.Nullable;
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
4

5 6 7 8
import com.facebook.imagepipeline.core.DefaultExecutorSupplier;
import com.facebook.imagepipeline.core.ExecutorSupplier;
import com.facebook.imagepipeline.memory.PoolConfig;
import com.facebook.imagepipeline.memory.PoolFactory;
Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
9 10
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMap;
11 12
import com.facebook.react.uimanager.SimpleViewManager;
import com.facebook.react.uimanager.ThemedReactContext;
Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
13
import com.facebook.react.uimanager.ReactProp;
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
14

15

Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
16
public class GLCanvasManager extends SimpleViewManager<GLCanvas> {
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
17

Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
18
    public static final String REACT_CLASS = "GLCanvas";
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
19

20 21
    private ExecutorSupplier executorSupplier;

Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
22 23 24 25 26 27 28 29
    @ReactProp(name="nbContentTextures")
    public void setNbContentTextures (GLCanvas view, int nbContentTextures) {
        view.setNbContentTextures(nbContentTextures);
    }
    @ReactProp(name="renderId")
    public void setRenderId (GLCanvas view, int renderId) {
        view.setRenderId(renderId);
    }
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
30

Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
31 32 33 34
    @ReactProp(name="opaque")
    public void setOpaque (GLCanvas view, boolean opaque) {
        view.setOpaque(opaque);
    }
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
35

Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
36 37 38 39
    @ReactProp(name="autoRedraw")
    public void setAutoRedraw (GLCanvas view, boolean autoRedraw) {
        view.setAutoRedraw(autoRedraw);
    }
40

Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
41 42 43 44
    @ReactProp(name="eventsThrough")
    public void setEventsThrough (GLCanvas view, boolean eventsThrough) {
        view.setEventsThrough(eventsThrough);
    }
45

Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
46 47 48 49
    @ReactProp(name="visibleContent")
    public void setVisibleContent (GLCanvas view, boolean visibleContent) {
        view.setVisibleContent(visibleContent);
    }
50

Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
51 52 53 54
    @ReactProp(name="captureNextFrameId")
    public void setCaptureNextFrameId (GLCanvas view, int captureNextFrameId) {
        view.setCaptureNextFrameId(captureNextFrameId);
    }
Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
55

Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
56 57 58 59
    @ReactProp(name="data")
    public void setData (GLCanvas view, @Nullable ReadableMap data) {
        view.setData(data == null ? null : GLData.fromMap(data));
    }
Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
60

Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
61 62 63 64
    @ReactProp(name="imagesToPreload")
    public void setImagesToPreload (GLCanvas view, @Nullable ReadableArray imageToPreload) {
        view.setImagesToPreload(imageToPreload);
    }
Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
65

Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
66 67 68 69
    @Override
    public String getName() {
        return REACT_CLASS;
    }
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
70

Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
71 72
    @Override
    public GLCanvas createViewInstance (ThemedReactContext context) {
73 74 75 76 77 78
        if (executorSupplier == null) {
            PoolFactory poolFactory = new PoolFactory(PoolConfig.newBuilder().build());
            int numCpuBoundThreads = poolFactory.getFlexByteArrayPoolMaxNumThreads();
            executorSupplier = new DefaultExecutorSupplier(numCpuBoundThreads);
        }
        return new GLCanvas(context, executorSupplier);
Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
79
    }
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
80
}