OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 COMPONENTS_BITMAP_UPLOADER_BITMAP_UPLOADER_H_ | 5 #ifndef COMPONENTS_BITMAP_UPLOADER_BITMAP_UPLOADER_H_ |
6 #define COMPONENTS_BITMAP_UPLOADER_BITMAP_UPLOADER_H_ | 6 #define COMPONENTS_BITMAP_UPLOADER_BITMAP_UPLOADER_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
| 10 #include <memory> |
| 11 |
10 #include "base/compiler_specific.h" | 12 #include "base/compiler_specific.h" |
11 #include "base/containers/hash_tables.h" | 13 #include "base/containers/hash_tables.h" |
12 #include "base/macros.h" | 14 #include "base/macros.h" |
13 #include "base/memory/scoped_ptr.h" | |
14 #include "components/bitmap_uploader/bitmap_uploader_export.h" | 15 #include "components/bitmap_uploader/bitmap_uploader_export.h" |
15 #include "components/mus/public/cpp/window_surface.h" | 16 #include "components/mus/public/cpp/window_surface.h" |
16 #include "components/mus/public/cpp/window_surface_client.h" | 17 #include "components/mus/public/cpp/window_surface_client.h" |
17 #include "components/mus/public/interfaces/compositor_frame.mojom.h" | 18 #include "components/mus/public/interfaces/compositor_frame.mojom.h" |
18 #include "components/mus/public/interfaces/gpu.mojom.h" | 19 #include "components/mus/public/interfaces/gpu.mojom.h" |
19 #include "gpu/GLES2/gl2chromium.h" | 20 #include "gpu/GLES2/gl2chromium.h" |
20 #include "gpu/GLES2/gl2extchromium.h" | 21 #include "gpu/GLES2/gl2extchromium.h" |
21 #include "mojo/public/c/gles2/gles2.h" | 22 #include "mojo/public/c/gles2/gles2.h" |
22 | 23 |
23 namespace shell { | 24 namespace shell { |
(...skipping 18 matching lines...) Expand all Loading... |
42 void SetColor(uint32_t color); | 43 void SetColor(uint32_t color); |
43 | 44 |
44 enum Format { | 45 enum Format { |
45 RGBA, // Pixel layout on Android. | 46 RGBA, // Pixel layout on Android. |
46 BGRA, // Pixel layout everywhere else. | 47 BGRA, // Pixel layout everywhere else. |
47 }; | 48 }; |
48 | 49 |
49 // Sets a bitmap. | 50 // Sets a bitmap. |
50 void SetBitmap(int width, | 51 void SetBitmap(int width, |
51 int height, | 52 int height, |
52 scoped_ptr<std::vector<unsigned char>> data, | 53 std::unique_ptr<std::vector<unsigned char>> data, |
53 Format format); | 54 Format format); |
54 | 55 |
55 private: | 56 private: |
56 void Upload(); | 57 void Upload(); |
57 | 58 |
58 uint32_t BindTextureForSize(const mojo::Size size); | 59 uint32_t BindTextureForSize(const mojo::Size size); |
59 | 60 |
60 uint32_t TextureFormat() const { | 61 uint32_t TextureFormat() const { |
61 return format_ == BGRA ? GL_BGRA_EXT : GL_RGBA; | 62 return format_ == BGRA ? GL_BGRA_EXT : GL_RGBA; |
62 } | 63 } |
63 | 64 |
64 void SetIdNamespace(uint32_t id_namespace); | 65 void SetIdNamespace(uint32_t id_namespace); |
65 | 66 |
66 // WindowSurfaceClient implementation. | 67 // WindowSurfaceClient implementation. |
67 void OnResourcesReturned( | 68 void OnResourcesReturned( |
68 mus::WindowSurface* surface, | 69 mus::WindowSurface* surface, |
69 mojo::Array<mus::mojom::ReturnedResourcePtr> resources) override; | 70 mojo::Array<mus::mojom::ReturnedResourcePtr> resources) override; |
70 | 71 |
71 mus::Window* window_; | 72 mus::Window* window_; |
72 mus::mojom::GpuPtr gpu_service_; | 73 mus::mojom::GpuPtr gpu_service_; |
73 scoped_ptr<mus::WindowSurface> surface_; | 74 std::unique_ptr<mus::WindowSurface> surface_; |
74 MojoGLES2Context gles2_context_; | 75 MojoGLES2Context gles2_context_; |
75 | 76 |
76 mojo::Size size_; | 77 mojo::Size size_; |
77 uint32_t color_; | 78 uint32_t color_; |
78 int width_; | 79 int width_; |
79 int height_; | 80 int height_; |
80 Format format_; | 81 Format format_; |
81 scoped_ptr<std::vector<unsigned char>> bitmap_; | 82 std::unique_ptr<std::vector<unsigned char>> bitmap_; |
82 uint32_t next_resource_id_; | 83 uint32_t next_resource_id_; |
83 uint32_t id_namespace_; | 84 uint32_t id_namespace_; |
84 base::hash_map<uint32_t, uint32_t> resource_to_texture_id_map_; | 85 base::hash_map<uint32_t, uint32_t> resource_to_texture_id_map_; |
85 | 86 |
86 DISALLOW_COPY_AND_ASSIGN(BitmapUploader); | 87 DISALLOW_COPY_AND_ASSIGN(BitmapUploader); |
87 }; | 88 }; |
88 | 89 |
89 } // namespace bitmap_uploader | 90 } // namespace bitmap_uploader |
90 | 91 |
91 #endif // COMPONENTS_BITMAP_UPLOADER_BITMAP_UPLAODER_H_ | 92 #endif // COMPONENTS_BITMAP_UPLOADER_BITMAP_UPLAODER_H_ |
OLD | NEW |