OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef SKIA_PUBLIC_INTERFACES_BITMAP_SKBITMAP_STRUCT_TRAITS_H_ | 5 #ifndef SKIA_PUBLIC_INTERFACES_BITMAP_SKBITMAP_STRUCT_TRAITS_H_ |
6 #define SKIA_PUBLIC_INTERFACES_BITMAP_SKBITMAP_STRUCT_TRAITS_H_ | 6 #define SKIA_PUBLIC_INTERFACES_BITMAP_SKBITMAP_STRUCT_TRAITS_H_ |
7 | 7 |
8 #include "mojo/public/cpp/bindings/array_traits.h" | |
9 #include "skia/public/interfaces/bitmap.mojom.h" | 8 #include "skia/public/interfaces/bitmap.mojom.h" |
10 #include "third_party/skia/include/core/SkBitmap.h" | 9 #include "third_party/skia/include/core/SkBitmap.h" |
11 | 10 |
12 namespace mojo { | 11 namespace mojo { |
13 | 12 |
14 // A buffer used to read pixel data directly from BitmapDataView to SkBitmap. | |
15 using BitmapBuffer = CArray<uint8_t>; | |
16 | |
17 // Struct traits to use SkBitmap for skia::mojom::Bitmap in Chrome C++ code. | 13 // Struct traits to use SkBitmap for skia::mojom::Bitmap in Chrome C++ code. |
18 template <> | 14 template <> |
19 struct StructTraits<skia::mojom::BitmapDataView, SkBitmap> { | 15 struct StructTraits<skia::mojom::BitmapDataView, SkBitmap> { |
20 static bool IsNull(const SkBitmap& b); | 16 static bool IsNull(const SkBitmap& b); |
21 static void SetToNull(SkBitmap* b); | 17 static void SetToNull(SkBitmap* b); |
22 static skia::mojom::ColorType color_type(const SkBitmap& b); | 18 static skia::mojom::ColorType color_type(const SkBitmap& b); |
23 static skia::mojom::AlphaType alpha_type(const SkBitmap& b); | 19 static skia::mojom::AlphaType alpha_type(const SkBitmap& b); |
24 static skia::mojom::ColorProfileType profile_type(const SkBitmap& b); | 20 static skia::mojom::ColorProfileType profile_type(const SkBitmap& b); |
25 static uint32_t width(const SkBitmap& b); | 21 static uint32_t width(const SkBitmap& b); |
26 static uint32_t height(const SkBitmap& b); | 22 static uint32_t height(const SkBitmap& b); |
27 static uint64_t row_bytes(const SkBitmap& b); | 23 static uint64_t row_bytes(const SkBitmap& b); |
28 static BitmapBuffer pixel_data(const SkBitmap& b); | 24 static mojo::ScopedSharedBufferHandle pixel_data_buffer_handle( |
| 25 const SkBitmap& b, |
| 26 void* context); |
29 static bool Read(skia::mojom::BitmapDataView data, SkBitmap* b); | 27 static bool Read(skia::mojom::BitmapDataView data, SkBitmap* b); |
30 static void* SetUpContext(const SkBitmap& b); | 28 static void* SetUpContext(const SkBitmap& b); |
31 static void TearDownContext(const SkBitmap& b, void* context); | 29 static void TearDownContext(const SkBitmap& b, void* context); |
32 }; | 30 }; |
33 | 31 |
34 } // namespace mojo | 32 } // namespace mojo |
35 | 33 |
36 #endif // SKIA_PUBLIC_INTERFACES_BITMAP_SKBITMAP_STRUCT_TRAITS_H_ | 34 #endif // SKIA_PUBLIC_INTERFACES_BITMAP_SKBITMAP_STRUCT_TRAITS_H_ |
OLD | NEW |