mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
Update engine
This patch updates our use of Mozart to the latest version of the protocol.
This commit is contained in:
parent
040ff9b037
commit
04adf211d7
2
bin/cache/engine.version
vendored
2
bin/cache/engine.version
vendored
@ -1 +1 @@
|
|||||||
516c096d987f9b04ac24af440396f693947e98ab
|
3d944e1c36ebe543e16ecd808336594340186fe4
|
||||||
|
@ -8,11 +8,12 @@ import 'dart:ui' as ui;
|
|||||||
|
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:mojo_services/mojo/gfx/composition/scene_token.mojom.dart' as mojom;
|
import 'package:mojo_services/mojo/gfx/composition/scene_token.mojom.dart' as mojom;
|
||||||
import 'package:mojo_services/mojo/ui/layouts.mojom.dart' as mojom;
|
|
||||||
import 'package:mojo_services/mojo/ui/view_containers.mojom.dart' as mojom;
|
import 'package:mojo_services/mojo/ui/view_containers.mojom.dart' as mojom;
|
||||||
import 'package:mojo_services/mojo/ui/view_provider.mojom.dart' as mojom;
|
import 'package:mojo_services/mojo/ui/view_provider.mojom.dart' as mojom;
|
||||||
|
import 'package:mojo_services/mojo/ui/view_properties.mojom.dart' as mojom;
|
||||||
import 'package:mojo_services/mojo/ui/view_token.mojom.dart' as mojom;
|
import 'package:mojo_services/mojo/ui/view_token.mojom.dart' as mojom;
|
||||||
import 'package:mojo_services/mojo/ui/views.mojom.dart' as mojom;
|
import 'package:mojo_services/mojo/ui/views.mojom.dart' as mojom;
|
||||||
|
import 'package:mojo_services/mojo/geometry.mojom.dart' as mojom;
|
||||||
import 'package:mojo/application.dart';
|
import 'package:mojo/application.dart';
|
||||||
import 'package:mojo/core.dart' as core;
|
import 'package:mojo/core.dart' as core;
|
||||||
import 'package:mojo/mojo/service_provider.mojom.dart' as mojom;
|
import 'package:mojo/mojo/service_provider.mojom.dart' as mojom;
|
||||||
@ -102,6 +103,9 @@ class ChildViewConnection {
|
|||||||
static int _nextViewKey = 1;
|
static int _nextViewKey = 1;
|
||||||
int _viewKey;
|
int _viewKey;
|
||||||
|
|
||||||
|
int _sceneVersion = 1;
|
||||||
|
mojom.ViewProperties _currentViewProperties;
|
||||||
|
|
||||||
VoidCallback _onViewInfoAvailable;
|
VoidCallback _onViewInfoAvailable;
|
||||||
mojom.ViewInfo _viewInfo;
|
mojom.ViewInfo _viewInfo;
|
||||||
|
|
||||||
@ -138,6 +142,7 @@ class ChildViewConnection {
|
|||||||
_viewContainer?.removeChild(_viewKey, _viewOwner);
|
_viewContainer?.removeChild(_viewKey, _viewOwner);
|
||||||
_viewKey = null;
|
_viewKey = null;
|
||||||
_viewInfo = null;
|
_viewInfo = null;
|
||||||
|
_currentViewProperties = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// The number of render objects attached to this view. In between frames, we
|
// The number of render objects attached to this view. In between frames, we
|
||||||
@ -166,24 +171,38 @@ class ChildViewConnection {
|
|||||||
_removeChildFromViewHost();
|
_removeChildFromViewHost();
|
||||||
}
|
}
|
||||||
|
|
||||||
void _layout({ int physicalWidth, int physicalHeight, double devicePixelRatio }) {
|
mojom.ViewProperties _createViewProperties(int physicalWidth,
|
||||||
|
int physicalHeight,
|
||||||
|
double devicePixelRatio) {
|
||||||
|
if (_currentViewProperties != null &&
|
||||||
|
_currentViewProperties.displayMetrics.devicePixelRatio == devicePixelRatio &&
|
||||||
|
_currentViewProperties.viewLayout.size.width == physicalWidth &&
|
||||||
|
_currentViewProperties.viewLayout.size.height == physicalHeight)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
mojom.DisplayMetrics displayMetrics = new mojom.DisplayMetrics()
|
||||||
|
..devicePixelRatio = devicePixelRatio;
|
||||||
|
mojom.Size size = new mojom.Size()
|
||||||
|
..width = physicalWidth
|
||||||
|
..height = physicalHeight;
|
||||||
|
mojom.ViewLayout viewLayout = new mojom.ViewLayout()
|
||||||
|
..size = size;
|
||||||
|
_currentViewProperties = new mojom.ViewProperties()
|
||||||
|
..displayMetrics = displayMetrics
|
||||||
|
..viewLayout = viewLayout;
|
||||||
|
return _currentViewProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
void _setChildProperties(int physicalWidth, int physicalHeight, double devicePixelRatio) {
|
||||||
assert(_attached);
|
assert(_attached);
|
||||||
assert(_attachments == 1);
|
assert(_attachments == 1);
|
||||||
assert(_viewKey != null);
|
assert(_viewKey != null);
|
||||||
if (_view == null)
|
if (_view == null)
|
||||||
return;
|
return;
|
||||||
// TODO(abarth): Ideally we would propagate our actual constraints to be
|
mojom.ViewProperties viewProperties = _createViewProperties(physicalWidth, physicalHeight, devicePixelRatio);
|
||||||
// able to support rich cross-app layout. For now, we give the child tight
|
if (viewProperties == null)
|
||||||
// constraints for simplicity.
|
return;
|
||||||
mojom.BoxConstraints childConstraints = new mojom.BoxConstraints()
|
_viewContainer.setChildProperties(_viewKey, _sceneVersion++, viewProperties);
|
||||||
..minWidth = physicalWidth
|
|
||||||
..maxWidth = physicalWidth
|
|
||||||
..minHeight = physicalHeight
|
|
||||||
..maxHeight = physicalHeight;
|
|
||||||
mojom.ViewLayoutParams layoutParams = new mojom.ViewLayoutParams()
|
|
||||||
..constraints = childConstraints
|
|
||||||
..devicePixelRatio = devicePixelRatio;
|
|
||||||
_viewContainer.layoutChild(_viewKey, layoutParams);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -257,7 +276,7 @@ class RenderChildView extends RenderBox {
|
|||||||
if (_child != null) {
|
if (_child != null) {
|
||||||
_physicalWidth = (size.width * scale).round();
|
_physicalWidth = (size.width * scale).round();
|
||||||
_physicalHeight = (size.height * scale).round();
|
_physicalHeight = (size.height * scale).round();
|
||||||
_child._layout(physicalWidth: _physicalWidth, physicalHeight: _physicalHeight, devicePixelRatio: scale);
|
_child._setChildProperties(_physicalWidth, _physicalHeight, scale);
|
||||||
assert(() {
|
assert(() {
|
||||||
if (_view == null) {
|
if (_view == null) {
|
||||||
_debugErrorMessage ??= new TextPainter()
|
_debugErrorMessage ??= new TextPainter()
|
||||||
|
Loading…
Reference in New Issue
Block a user