| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 CC_RESOURCES_VIDEO_RESOURCE_UPDATER_H_ | 5 #ifndef CC_RESOURCES_VIDEO_RESOURCE_UPDATER_H_ |
| 6 #define CC_RESOURCES_VIDEO_RESOURCE_UPDATER_H_ | 6 #define CC_RESOURCES_VIDEO_RESOURCE_UPDATER_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 RGBA_PREMULTIPLIED_RESOURCE, | 42 RGBA_PREMULTIPLIED_RESOURCE, |
| 43 RGBA_RESOURCE, | 43 RGBA_RESOURCE, |
| 44 STREAM_TEXTURE_RESOURCE, | 44 STREAM_TEXTURE_RESOURCE, |
| 45 | 45 |
| 46 // TODO(danakj): Remove this and abstract TextureMailbox into | 46 // TODO(danakj): Remove this and abstract TextureMailbox into |
| 47 // "ExternalResource" that can hold a hardware or software backing. | 47 // "ExternalResource" that can hold a hardware or software backing. |
| 48 SOFTWARE_RESOURCE | 48 SOFTWARE_RESOURCE |
| 49 }; | 49 }; |
| 50 | 50 |
| 51 ResourceType type; | 51 ResourceType type; |
| 52 ResourceFormat format; |
| 52 std::vector<TextureMailbox> mailboxes; | 53 std::vector<TextureMailbox> mailboxes; |
| 53 std::vector<ReleaseCallbackImpl> release_callbacks; | 54 std::vector<ReleaseCallbackImpl> release_callbacks; |
| 54 bool read_lock_fences_enabled; | 55 bool read_lock_fences_enabled; |
| 55 | 56 |
| 56 // TODO(danakj): Remove these too. | 57 // TODO(danakj): Remove these too. |
| 57 std::vector<unsigned> software_resources; | 58 std::vector<unsigned> software_resources; |
| 58 ReleaseCallbackImpl software_release_callback; | 59 ReleaseCallbackImpl software_release_callback; |
| 59 | 60 |
| 60 // Used by hardware textures which do not return values in the 0-1 range. | 61 // Used by hardware textures which do not return values in the 0-1 range. |
| 61 // After a lookup, subtract offset and multiply by multiplier. | 62 // After a lookup, subtract offset and multiply by multiplier. |
| (...skipping 20 matching lines...) Expand all Loading... |
| 82 | 83 |
| 83 // Convert an array of short integers into an array of half-floats. | 84 // Convert an array of short integers into an array of half-floats. |
| 84 // |src| is an array of integers in range 0 .. 2^{bits_per_channel} - 1 | 85 // |src| is an array of integers in range 0 .. 2^{bits_per_channel} - 1 |
| 85 // |num| is number of entries in input and output array. | 86 // |num| is number of entries in input and output array. |
| 86 // The numbers stored in |dst| will be half floats in range 0.0..1.0 | 87 // The numbers stored in |dst| will be half floats in range 0.0..1.0 |
| 87 static void MakeHalfFloats(const uint16_t* src, | 88 static void MakeHalfFloats(const uint16_t* src, |
| 88 int bits_per_channel, | 89 int bits_per_channel, |
| 89 size_t num, | 90 size_t num, |
| 90 uint16_t* dst); | 91 uint16_t* dst); |
| 91 | 92 |
| 93 ResourceFormat YuvResourceFormat(int bits) const; |
| 94 void UseRGForTesting(bool use_rg_for_testing) { |
| 95 use_rg_for_testing_ = use_rg_for_testing; |
| 96 } |
| 97 |
| 92 private: | 98 private: |
| 93 class PlaneResource { | 99 class PlaneResource { |
| 94 public: | 100 public: |
| 95 PlaneResource(unsigned resource_id, | 101 PlaneResource(unsigned resource_id, |
| 96 const gfx::Size& resource_size, | 102 const gfx::Size& resource_size, |
| 97 ResourceFormat resource_format, | 103 ResourceFormat resource_format, |
| 98 gpu::Mailbox mailbox); | 104 gpu::Mailbox mailbox); |
| 99 PlaneResource(const PlaneResource& other); | 105 PlaneResource(const PlaneResource& other); |
| 100 | 106 |
| 101 // Returns true if this resource matches the unique identifiers of another | 107 // Returns true if this resource matches the unique identifiers of another |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 | 189 |
| 184 ContextProvider* context_provider_; | 190 ContextProvider* context_provider_; |
| 185 ResourceProvider* resource_provider_; | 191 ResourceProvider* resource_provider_; |
| 186 std::unique_ptr<media::SkCanvasVideoRenderer> video_renderer_; | 192 std::unique_ptr<media::SkCanvasVideoRenderer> video_renderer_; |
| 187 std::vector<uint8_t> upload_pixels_; | 193 std::vector<uint8_t> upload_pixels_; |
| 188 | 194 |
| 189 // Recycle resources so that we can reduce the number of allocations and | 195 // Recycle resources so that we can reduce the number of allocations and |
| 190 // data transfers. | 196 // data transfers. |
| 191 ResourceList all_resources_; | 197 ResourceList all_resources_; |
| 192 | 198 |
| 199 bool use_rg_for_testing_ = false; |
| 200 |
| 193 DISALLOW_COPY_AND_ASSIGN(VideoResourceUpdater); | 201 DISALLOW_COPY_AND_ASSIGN(VideoResourceUpdater); |
| 194 }; | 202 }; |
| 195 | 203 |
| 196 } // namespace cc | 204 } // namespace cc |
| 197 | 205 |
| 198 #endif // CC_RESOURCES_VIDEO_RESOURCE_UPDATER_H_ | 206 #endif // CC_RESOURCES_VIDEO_RESOURCE_UPDATER_H_ |
| OLD | NEW |