| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 GPU_COMMAND_BUFFER_SERVICE_TEXTURE_MANAGER_H_ | 5 #ifndef GPU_COMMAND_BUFFER_SERVICE_TEXTURE_MANAGER_H_ |
| 6 #define GPU_COMMAND_BUFFER_SERVICE_TEXTURE_MANAGER_H_ | 6 #define GPU_COMMAND_BUFFER_SERVICE_TEXTURE_MANAGER_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 | 31 |
| 32 class GLES2Decoder; | 32 class GLES2Decoder; |
| 33 class GLStreamTextureImage; | 33 class GLStreamTextureImage; |
| 34 struct ContextState; | 34 struct ContextState; |
| 35 struct DecoderFramebufferState; | 35 struct DecoderFramebufferState; |
| 36 class Display; | 36 class Display; |
| 37 class ErrorState; | 37 class ErrorState; |
| 38 class FeatureInfo; | 38 class FeatureInfo; |
| 39 class FramebufferManager; | 39 class FramebufferManager; |
| 40 class MailboxManager; | 40 class MailboxManager; |
| 41 class ProgressReporter; |
| 41 class Texture; | 42 class Texture; |
| 42 class TextureManager; | 43 class TextureManager; |
| 43 class TextureRef; | 44 class TextureRef; |
| 44 | 45 |
| 45 class GPU_EXPORT TextureBase { | 46 class GPU_EXPORT TextureBase { |
| 46 public: | 47 public: |
| 47 explicit TextureBase(GLuint service_id); | 48 explicit TextureBase(GLuint service_id); |
| 48 virtual ~TextureBase(); | 49 virtual ~TextureBase(); |
| 49 | 50 |
| 50 // The service side OpenGL id of the texture. | 51 // The service side OpenGL id of the texture. |
| (...skipping 707 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 758 kNumDefaultTextures | 759 kNumDefaultTextures |
| 759 }; | 760 }; |
| 760 | 761 |
| 761 TextureManager(MemoryTracker* memory_tracker, | 762 TextureManager(MemoryTracker* memory_tracker, |
| 762 FeatureInfo* feature_info, | 763 FeatureInfo* feature_info, |
| 763 GLsizei max_texture_size, | 764 GLsizei max_texture_size, |
| 764 GLsizei max_cube_map_texture_size, | 765 GLsizei max_cube_map_texture_size, |
| 765 GLsizei max_rectangle_texture_size, | 766 GLsizei max_rectangle_texture_size, |
| 766 GLsizei max_3d_texture_size, | 767 GLsizei max_3d_texture_size, |
| 767 GLsizei max_array_texture_layers, | 768 GLsizei max_array_texture_layers, |
| 768 bool use_default_textures); | 769 bool use_default_textures, |
| 770 ProgressReporter* progress_reporter); |
| 769 ~TextureManager() override; | 771 ~TextureManager() override; |
| 770 | 772 |
| 771 void set_framebuffer_manager(FramebufferManager* manager) { | 773 void set_framebuffer_manager(FramebufferManager* manager) { |
| 772 framebuffer_manager_ = manager; | 774 framebuffer_manager_ = manager; |
| 773 } | 775 } |
| 774 | 776 |
| 775 // Init the texture manager. | 777 // Init the texture manager. |
| 776 bool Initialize(); | 778 bool Initialize(); |
| 777 | 779 |
| 778 // Must call before destruction. | 780 // Must call before destruction. |
| (...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1228 // TextureInfos are only for textures the client side can access. | 1230 // TextureInfos are only for textures the client side can access. |
| 1229 GLuint black_texture_ids_[kNumDefaultTextures]; | 1231 GLuint black_texture_ids_[kNumDefaultTextures]; |
| 1230 | 1232 |
| 1231 // The default textures for each target (texture name = 0) | 1233 // The default textures for each target (texture name = 0) |
| 1232 scoped_refptr<TextureRef> default_textures_[kNumDefaultTextures]; | 1234 scoped_refptr<TextureRef> default_textures_[kNumDefaultTextures]; |
| 1233 | 1235 |
| 1234 std::vector<DestructionObserver*> destruction_observers_; | 1236 std::vector<DestructionObserver*> destruction_observers_; |
| 1235 | 1237 |
| 1236 uint32_t current_service_id_generation_; | 1238 uint32_t current_service_id_generation_; |
| 1237 | 1239 |
| 1240 // Used to notify the watchdog thread of progress during destruction, |
| 1241 // preventing time-outs when destruction takes a long time. |
| 1242 ProgressReporter* progress_reporter_; |
| 1243 |
| 1238 DISALLOW_COPY_AND_ASSIGN(TextureManager); | 1244 DISALLOW_COPY_AND_ASSIGN(TextureManager); |
| 1239 }; | 1245 }; |
| 1240 | 1246 |
| 1241 // This class records texture upload time when in scope. | 1247 // This class records texture upload time when in scope. |
| 1242 class ScopedTextureUploadTimer { | 1248 class ScopedTextureUploadTimer { |
| 1243 public: | 1249 public: |
| 1244 explicit ScopedTextureUploadTimer(DecoderTextureState* texture_state); | 1250 explicit ScopedTextureUploadTimer(DecoderTextureState* texture_state); |
| 1245 ~ScopedTextureUploadTimer(); | 1251 ~ScopedTextureUploadTimer(); |
| 1246 | 1252 |
| 1247 private: | 1253 private: |
| 1248 DecoderTextureState* texture_state_; | 1254 DecoderTextureState* texture_state_; |
| 1249 base::TimeTicks begin_time_; | 1255 base::TimeTicks begin_time_; |
| 1250 DISALLOW_COPY_AND_ASSIGN(ScopedTextureUploadTimer); | 1256 DISALLOW_COPY_AND_ASSIGN(ScopedTextureUploadTimer); |
| 1251 }; | 1257 }; |
| 1252 | 1258 |
| 1253 } // namespace gles2 | 1259 } // namespace gles2 |
| 1254 } // namespace gpu | 1260 } // namespace gpu |
| 1255 | 1261 |
| 1256 #endif // GPU_COMMAND_BUFFER_SERVICE_TEXTURE_MANAGER_H_ | 1262 #endif // GPU_COMMAND_BUFFER_SERVICE_TEXTURE_MANAGER_H_ |
| OLD | NEW |