Skip to content

Instantly share code, notes, and snippets.

View yjbanov's full-sized avatar
💭
Building a Web runtime for Flutter: http://bit.ly/flutter-web

Yegor yjbanov

💭
Building a Web runtime for Flutter: http://bit.ly/flutter-web
View GitHub Profile
@yjbanov
yjbanov / frame-order-skia-vs-webcodecs.html
Created December 8, 2021 22:42
frame decode order skia vs webcodecs
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SkImage.readPixels</title>
</head>
<body>
<canvas id=foo width=300 height=300></canvas>
@yjbanov
yjbanov / flutter-analyze-2.txt
Created November 29, 2021 21:16
flutter update-packages && flutter analyze --flutter-repo
$ flutter update-packages
Running "flutter pub get" in flutter_update_packages.RFBKQF... 4.5s
Ran pub get in dev/integration_tests/web in 1.2s...
Ran pub get in dev/integration_tests/web_compile_tests in 1.3s...
Ran pub get in dev/tools/vitool in 1.5s...
Ran pub get in packages/flutter_test in 1.6s...
Ran pub get in packages/flutter_tools/test/data/asset_test/main in 2.1s...
Ran pub get in examples/platform_view in 2.1s...
Ran pub get in packages/integration_test/integration_test_macos in 0.9s...
Ran pub get in packages/flutter_test/test/test_config/project_root in 2.2s...
@yjbanov
yjbanov / flutter-analyze.txt
Created November 24, 2021 19:18
Unexpectedly failing framework analysis
$ dart --enable-asserts dev/bots/analyze.dart
▌11:11:21▐ STARTING ANALYSIS
▌11:11:21▐ No runtimeType in toString...
▌11:11:21▐ Debug mode instead of checked mode...
▌11:11:22▐ Links for creating GitHub issues
▌11:11:23▐ Unexpected binaries...
▌11:11:23▐ Trailing spaces...
▌11:11:24▐ Deprecations...
▌11:11:25▐ Goldens...
▌11:11:26▐ Skip test comments...
class IPromiseIAmImmutable {
IPromiseIAmImmutable(this.field);
final int? field;
}
class OhYeahWatchThis implements IPromiseIAmImmutable {
int? _field;
@override
import 'dart:ui';
import 'package:flutter/material.dart';
const N = 10000;
void main() {
runApp(MyApp());
}
In file included from ../../flutter/third_party/accessibility/ax/ax_event_generator.cc:5:
../../flutter/third_party/accessibility/ax/ax_event_generator.h(129,21): warning: 'iterator<std::input_iterator_tag, ui::AXEventGenerator::TargetedEvent, long long, ui::AXEventGenerator::TargetedEvent *, ui::AXEventGenerator::TargetedEvent &>' is deprecated: warning STL4015: The std::iterator class template (used as a base class to provide typedefs) is deprecated in C++17. (The <iterator> header is NOT deprecated.) The C++ Standard has never required user-defined iterators to derive from std::iterator. To fix this warning, stop deriving from std::iterator and start providing publicly accessible typedefs named iterator_category, value_type, difference_type, pointer, and reference. Note that value_type is required to be non-const, even for constant iterators. You can define _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to acknowledge that you have received this warning. [
@yjbanov
yjbanov / batch_sprites_draw_atlas.dart
Created February 12, 2021 21:07
Render thousands of sprites fast by batching them into a single drawAtlas call
// @dart=2.12
import 'dart:async';
// ignore: avoid_web_libraries_in_flutter
import 'dart:html' as html;
import 'dart:math' as math;
import 'dart:typed_data';
import 'dart:ui';
import 'package:flutter/material.dart' hide Image;
List<Sprite> sprite = <Sprite>[];
@yjbanov
yjbanov / felt-integration-tests.txt
Created November 12, 2020 17:24
felt integration test errors
$ ENGINE_PATH=/home/yjbanov/code/flutter/engine felt test --integration-tests-only
INFO: Major version for Chrome Driver 84
INFO: chrome version in use Google Chrome 86.0.4240.183
downloading file from https://chromedriver.storage.googleapis.com/86.0.4240.22/chromedriver_linux64.zip
INFO: Driver started
Starting ChromeDriver 86.0.4240.22 (398b0743353ff36fb1b82468f63a3a93b4e2e89e-refs/branch-heads/4240@{#378}) on port 4444
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

Sometimes DDC outputs stack frames in the stack for constructor calls with just "new" and no class information.

Example:

#32     new (http://localhost:46833/dart-sdk/lib/async/stream_controller.dart:880:9)

I expected to always see class attached to a constructor invocation. I implemented a workaround, so this is not urgent.

@yjbanov
yjbanov / canvaskit_make_release.log
Created September 29, 2020 00:24
canvaskit release build log
$ make release
# Does an incremental build where possible.
./compile.sh
+++ dirname ./compile.sh
++ cd .
++ pwd
+ BASE_DIR=/home/yjbanov/code/flutter/skia/modules/canvaskit
+ [[ ! -d /home/yjbanov/code/emsdk ]]
+ pushd /home/yjbanov/code/flutter/skia/modules/canvaskit/../..
~/code/flutter/skia ~/code/flutter/skia/modules/canvaskit