GLCanvasManager.java 3.04 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;
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
11
import com.facebook.react.common.MapBuilder;
12 13
import com.facebook.react.uimanager.SimpleViewManager;
import com.facebook.react.uimanager.ThemedReactContext;
Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
14
import com.facebook.react.uimanager.ReactProp;
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
15

Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
16 17
import java.util.Map;

18

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

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

23 24
    private ExecutorSupplier executorSupplier;

Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
25 26 27 28 29 30 31 32
    @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
33

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

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

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

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

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

Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
59 60 61 62
    @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
63

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

Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
69 70 71 72
    @Override
    public String getName() {
        return REACT_CLASS;
    }
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
73

Gaëtan Renaudeau's avatar
WIP  
Gaëtan Renaudeau committed
74 75
    @Override
    public GLCanvas createViewInstance (ThemedReactContext context) {
76 77 78 79 80 81
        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
82
    }
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
83 84 85 86 87 88 89 90 91 92

    @Override
    public @Nullable Map getExportedCustomDirectEventTypeConstants() {
        return MapBuilder.of(
                "load",
                MapBuilder.of("registrationName", "onLoad"),
                "progress",
                MapBuilder.of("registrationName", "onProgress")
        );
    }
Gaëtan Renaudeau's avatar
Gaëtan Renaudeau committed
93
}