| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // https://wicg.github.io/shape-detection-api/#api |
| |
| module shape_detection.mojom; |
| |
| import "skia/public/mojom/bitmap.mojom"; |
| import "ui/gfx/geometry/mojom/geometry.mojom"; |
| |
| // https://wicg.github.io/shape-detection-api/#enumdef-landmarktype |
| enum LandmarkType { MOUTH, EYE, NOSE }; |
| |
| // https://wicg.github.io/shape-detection-api/#dictdef-landmark |
| struct Landmark { |
| array<gfx.mojom.PointF> locations; |
| LandmarkType type; |
| }; |
| |
| // Since "//ui/gfx/geometry/mojom" is not exposed to blink, we need to declare |
| // a wrapper struct, so that gfx.mojom.RectF will not be directly referenced |
| // inside Blink, and browser can still use gfx types. |
| struct FaceDetectionResult { |
| gfx.mojom.RectF bounding_box; |
| array<Landmark> landmarks; |
| }; |
| |
| struct FaceDetectorOptions { |
| uint32 max_detected_faces; |
| bool fast_mode; |
| }; |
| |
| interface FaceDetection { |
| // |bitmap_data| contains tightly packed image pixels in row-major order. |
| Detect(skia.mojom.Bitmap bitmap_data) |
| => (array<FaceDetectionResult> results); |
| }; |