forked from flutter-team-archive/engine
-
Notifications
You must be signed in to change notification settings - Fork 0
Porting Flutter's Engine
Eric Seidel edited this page Jan 23, 2016
·
7 revisions
Flutter's engine is designed to be portable. We don't have a single porting interface, but this wiki attempts to document the engine's dependencies at a high level.
##Dependencies by Code Region
base/ (required)
- event loop
- file system (also used by dart:io)
skia/ (required to draw to the screen, not for headless unittests)
- OpenGLES2 or 3. (Can render entirely in software, but it's slow.)
- EGL-like-thing for context creation, etc. (already plumbing for GLX, EGL, MGL, etc.) see https://github.com/flutter/engine/tree/master/sky/shell/gpu/direct
- Fonts (e.g. fontconfig and freetype, or android ones, etc.) used by sky/engine
sky/services/vsync (optional, but you really want this to go fast)
- vsync callback
sky/services/engine (required):
- touch input,screen geometry, etc. interfaces implementation
services/keyboard (optional)
- keyboard input linux and android ios
##Known Ports
- Android (Jelly Bean, v16, 4.1.x or newer)
- iOS devices and simulators (iOS 8.0+)
- Mac
- Linux (headless/no graphics)