generateWebGlID static method

String generateWebGlID()

Implementation

static String generateWebGlID() {
  try {
    final canvas =
        js.context['document'].callMethod('createElement', ['canvas']);
    final gl = canvas.callMethod('getContext', ['webgl2']);

    final components = <String?>[];

    if (gl != null) {
      try {
        final renderer = gl.callMethod('getParameter', [gl['RENDERER']]);
        final vendor = gl.callMethod('getParameter', [gl['VENDOR']]);
        components.add(renderer?.toString());
        components.add(vendor?.toString());
      } catch (_) {}
    }

    return generateSHA1Hash(jsonEncode(components));
  } catch (e) {
    return 'webgl_error';
  }
}