Go to the source code of this file.
|
static NSColor * | GetBorderColorForLayer (int layer) |
|
static void | UpdateContentSubLayers (CALayer *layer, IOSurfaceRef surface, CGFloat scale, CGSize surfaceSize, NSColor *borderColor, const std::vector< FlutterRect > &paintRegion) |
|
◆ GetBorderColorForLayer()
static NSColor* GetBorderColorForLayer |
( |
int |
layer | ) |
|
|
static |
Definition at line 46 of file FlutterSurfaceManager.mm.
48 [NSColor yellowColor],
50 [NSColor magentaColor],
52 [NSColor purpleColor],
53 [NSColor orangeColor],
56 return colors[layer % colors.count];
◆ UpdateContentSubLayers()
static void UpdateContentSubLayers |
( |
CALayer * |
layer, |
|
|
IOSurfaceRef |
surface, |
|
|
CGFloat |
scale, |
|
|
CGSize |
surfaceSize, |
|
|
NSColor * |
borderColor, |
|
|
const std::vector< FlutterRect > & |
paintRegion |
|
) |
| |
|
static |
Creates sublayers for given layer, each one displaying a portion of the of the surface determined by a rectangle in the provided paint region.
Definition at line 61 of file FlutterSurfaceManager.mm.
68 while (layer.sublayers.count > paintRegion.size()) {
69 [layer.sublayers.lastObject removeFromSuperlayer];
72 while (layer.sublayers.count < paintRegion.size()) {
73 CALayer* newLayer = [CALayer layer];
74 [layer addSublayer:newLayer];
77 for (
size_t i = 0; i < paintRegion.size(); i++) {
78 CALayer* subLayer = [layer.sublayers objectAtIndex:i];
79 const auto& rect = paintRegion[i];
80 subLayer.frame = CGRectMake(rect.left / scale, rect.top / scale,
81 (rect.right - rect.left) / scale, (rect.bottom - rect.top) / scale);
83 double width = surfaceSize.width;
84 double height = surfaceSize.height;
86 subLayer.contentsRect =
87 CGRectMake(rect.left / width, rect.top / height, (rect.right - rect.left) / width,
88 (rect.bottom - rect.top) / height);
90 if (borderColor != nil) {
92 subLayer.borderColor = borderColor.CGColor;
93 subLayer.borderWidth = 1.0;
96 subLayer.contents = (__bridge id)surface;
◆ kIdleDelay
const double kIdleDelay = 1.0 |
|
static |