| 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 <vector> | 8 #include <vector> |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/hash_tables.h" | 10 #include "base/hash_tables.h" |
| 11 #include "base/logging.h" | 11 #include "base/logging.h" |
| 12 #include "base/memory/ref_counted.h" | 12 #include "base/memory/ref_counted.h" |
| 13 #include "gpu/command_buffer/service/feature_info.h" | 13 #include "gpu/command_buffer/service/feature_info.h" |
| 14 #include "gpu/command_buffer/service/gl_utils.h" | 14 #include "gpu/command_buffer/service/gl_utils.h" |
| 15 #include "gpu/gpu_export.h" |
| 15 | 16 |
| 16 namespace gpu { | 17 namespace gpu { |
| 17 namespace gles2 { | 18 namespace gles2 { |
| 18 | 19 |
| 19 class GLES2Decoder; | 20 class GLES2Decoder; |
| 20 | 21 |
| 21 // This class keeps track of the textures and their sizes so we can do NPOT and | 22 // This class keeps track of the textures and their sizes so we can do NPOT and |
| 22 // texture complete checking. | 23 // texture complete checking. |
| 23 // | 24 // |
| 24 // NOTE: To support shared resources an instance of this class will need to be | 25 // NOTE: To support shared resources an instance of this class will need to be |
| 25 // shared by multiple GLES2Decoders. | 26 // shared by multiple GLES2Decoders. |
| 26 class TextureManager { | 27 class GPU_EXPORT TextureManager { |
| 27 public: | 28 public: |
| 28 enum DefaultAndBlackTextures { | 29 enum DefaultAndBlackTextures { |
| 29 kTexture2D, | 30 kTexture2D, |
| 30 kCubeMap, | 31 kCubeMap, |
| 31 kExternalOES, | 32 kExternalOES, |
| 32 kRectangleARB, | 33 kRectangleARB, |
| 33 kNumDefaultTextures | 34 kNumDefaultTextures |
| 34 }; | 35 }; |
| 35 | 36 |
| 36 // Info about Textures currently in the system. | 37 // Info about Textures currently in the system. |
| 37 class TextureInfo : public base::RefCounted<TextureInfo> { | 38 class GPU_EXPORT TextureInfo : public base::RefCounted<TextureInfo> { |
| 38 public: | 39 public: |
| 39 typedef scoped_refptr<TextureInfo> Ref; | 40 typedef scoped_refptr<TextureInfo> Ref; |
| 40 | 41 |
| 41 TextureInfo(TextureManager* manager, GLuint service_id) | 42 TextureInfo(TextureManager* manager, GLuint service_id) |
| 42 : manager_(manager), | 43 : manager_(manager), |
| 43 service_id_(service_id), | 44 service_id_(service_id), |
| 44 deleted_(false), | 45 deleted_(false), |
| 45 cleared_(true), | 46 cleared_(true), |
| 46 num_uncleared_mips_(0), | 47 num_uncleared_mips_(0), |
| 47 target_(0), | 48 target_(0), |
| (...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 550 // The default textures for each target (texture name = 0) | 551 // The default textures for each target (texture name = 0) |
| 551 TextureInfo::Ref default_textures_[kNumDefaultTextures]; | 552 TextureInfo::Ref default_textures_[kNumDefaultTextures]; |
| 552 | 553 |
| 553 DISALLOW_COPY_AND_ASSIGN(TextureManager); | 554 DISALLOW_COPY_AND_ASSIGN(TextureManager); |
| 554 }; | 555 }; |
| 555 | 556 |
| 556 } // namespace gles2 | 557 } // namespace gles2 |
| 557 } // namespace gpu | 558 } // namespace gpu |
| 558 | 559 |
| 559 #endif // GPU_COMMAND_BUFFER_SERVICE_TEXTURE_MANAGER_H_ | 560 #endif // GPU_COMMAND_BUFFER_SERVICE_TEXTURE_MANAGER_H_ |
| OLD | NEW |