mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
This (`impeller.h`) is a versioned, single-header, dependency-free, C API that exposes Display-Lists in almost their entirety. The anticipated users of this API do not expect ABI or API stability guarantees at this time but those can be added between specific versions as the API matures. Testing this API can be done via a playgrounds harness. One has been setup with rudimentary tests that will be filled out. A simple C example (`example.c`) using GLFW with OpenGL ES has been setup. Only OpenGL ES has been exposed at this time but additional backend will be added. This API is meant to be easy to bind to using automated tools for access in different languages and runtimes. Consequently, the API follows a strict convention for object naming, creating, and reference-counting. * All typedefs and method names have the âImpellerâ prefix. * Most objects are reference counted. Methods ending with âNewâ return a new instance of the object with reference count of 1. * Each object has a âRetainâ and âReleaseâ method to modify reference counts. For instance, with Rust `bindgen`, the following invocation generates usable bindings: ```sh bindgen impeller.h -o impeller.rs --no-layout-tests --rustified-enum âImpeller.*â --allowlist-item âImpeller.*â ``` It is expected that wrapped over these generated bindings will be written to make the usage more idiomatic. The C API itself is fairly verbose as well. <img width="1107" alt="Screenshot 2024-09-12 at 2 55 14â¯PM" src="https://github.com/user-attachments/assets/e1532dba-487e-4af1-9442-1005a8f52d8d">
Description
Flutter makes it easy and fast to build beautiful apps for mobile and beyond
androidapp-frameworkcross-platformdartdart-platformdesktopflutterflutter-packagefuchsiaioslinux-desktopmacosmaterial-designmobilemobile-developmentskiawebweb-frameworkwindows
2.5 GiB
Languages
Dart
75%
C++
16.5%
Objective-C++
2.9%
Java
2.8%
Objective-C
0.7%
Other
1.9%