-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Description
I have found out an issue with rendering the border of circle shape widgets.
Tested it on master 3.7.0-15.0.pre.16, ios 16.1, iphone 13 pro.
Steps to Reproduce
Sample repo available here, an avatar image is inside assets folder.
https://github.com/delfme/impeller-circle
Main.dart
import 'package:flutter/material.dart';
import 'dart:math';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
fontFamily: 'Poppins',
),
home: const MyHomePage(title: 'Flutter Circle Shape Border issue'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Container(
width: 120.0,
height: 120.0,
decoration: BoxDecoration(
shape: BoxShape.circle,
image: DecorationImage(
fit: BoxFit.fill,
image: AssetImage("assets/avatar.jpg"),
)
)
),
SizedBox(height: 20),
Container(
height: 105,
width: 105,
decoration: const BoxDecoration(
shape: BoxShape.circle,
gradient: LinearGradient(
colors: [
Color(0xFFA9C8F6),
Color(0xFF75A4EA),
Color(0xFF1B80F0),
Color(0xFF0080FF),
],
stops: [0, 0.33, 0.58, 1.0],
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
transform: GradientRotation(-pi / 1.35),
),
),
child: Center(
child: Container(
decoration: const BoxDecoration(
shape: BoxShape.circle,
color: Colors.white,
),
height: 100,
width: 100,
),
),
),
SizedBox(height: 20),
Container(
height: 100,
width: 100,
decoration: const BoxDecoration(
shape: BoxShape.circle,
color: Colors.grey,
),
child: Center(
child: Container(
height: 90,
width: 90,
decoration: const BoxDecoration(
shape: BoxShape.circle,
color: Colors.white,
),
),
),
),
],
),
),
);
}
}
Expected results:
Circle border should look sharp and antialiased. Please see zoomed in screen (Impeller is not enabled, arrows indicate where to look at).



Actual results:
Circle border looks pixelated. Please see zoomed in screen (Impeller is enabled, arrows indicate where to look at).



Flutter doctor:
[✓] Flutter (Channel master, 3.7.0-15.0.pre.16, on macOS 12.2 21D49 darwin-arm64, locale en-IT)
[!] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
✗ cmdline-tools component is missing
Run path/to/sdkmanager --install "cmdline-tools;latest"
See https://developer.android.com/studio/command-line for more details.
✗ Android license status unknown.
Run flutter doctor --android-licenses to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.
[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.2)
[✓] Connected device (3 available)
[✓] HTTP Host Availability