Flutter can not register a texture on any iOS device

Viewed 150

I'm working on a small flutter app that requires texture rendering. My typical plugin looks like this:

.....

private var textures: FlutterTextureRegistry!    
private var renderers = [Int64: FlutterRTCVideoRenderer]()

public static func register(with registrar: FlutterPluginRegistrar) {
    let channel = FlutterMethodChannel(name: "mypluginchannel", binaryMessenger: registrar.messenger())
    let instance = MyPlugin(registrar.textures(), registrar.messenger(), registrar)
    registrar.addMethodCallDelegate(instance, channel: channel)
}

init(_ textures: FlutterTextureRegistry, _ messanger: FlutterBinaryMessenger, _ registry: FlutterPluginRegistrar) {
    super.init()
    self.textures = textures
    self.messanger = messanger
    self.registry = registry
}

- (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result {

    if ([@"createTexture" isEqualToString:call.method]) {
       CGFloat width = [call.arguments[@"width"] floatValue];
       CGFloat height = [call.arguments[@"height"] floatValue];
    
       NSInteger __block textureId;
       id<FlutterTextureRegistry> __weak registry = self.textures;
    
       OpenGLRender *render = [[OpenGLRender alloc] initWithSize:CGSizeMake(width, height)
                                                       worker:[[SampleRenderWorker alloc] init]
                                                   onNewFrame:^{
                                                       [registry textureFrameAvailable:textureId];
                                                   }];
    
       textureId = [self.textures registerTexture:render]; // Always fails and returns 0
       self.renders[@(textureId)] = render;
       result(@(textureId));
}

textureId is always 0 which (according to documentation) means texture is not registered.

I really have no idea how to fix this. Is there any logging mechanism or error code to obtain from somewhere to know what's going on? Any ideas appreciated thanks.

0 Answers
Related