updateTexture static method

Future<void> updateTexture(
  1. FlutterAngleTexture texture, [
  2. WebGLTexture? sourceTexture
])

Implementation

static Future<void> updateTexture(FlutterAngleTexture texture,[WebGLTexture? sourceTexture]) async {
  if(sourceTexture != null){
    _rawOpenGl.glClearColor(0.0, 0.0, 0.0, 0.0);
    _rawOpenGl.glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
    _rawOpenGl.glViewport(0, 0, (texture.options.width*texture.options.dpr).toInt(),( texture.options.height*texture.options.dpr).toInt());
    worker.renderTexture(sourceTexture, isFBO: Platform.isAndroid);
    _rawOpenGl.glFinish();
  }

  if (Platform.isAndroid) {
    eglSwapBuffers(_display, texture.androidSurface);
    return;
  }
  _rawOpenGl.glFlush();
  assert(_activeFramebuffer != null,'There is no active FlutterGL Texture to update');
  await _channel.invokeMethod('updateTexture', {"textureId": texture.textureId,"location": texture.loc});
}