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 #include "gpu/command_buffer/service/texture_manager.h" | 5 #include "gpu/command_buffer/service/texture_manager.h" |
6 #include "base/bits.h" | 6 #include "base/bits.h" |
7 #include "base/strings/stringprintf.h" | 7 #include "base/strings/stringprintf.h" |
8 #include "gpu/command_buffer/common/gles2_cmd_utils.h" | 8 #include "gpu/command_buffer/common/gles2_cmd_utils.h" |
9 #include "gpu/command_buffer/service/context_state.h" | 9 #include "gpu/command_buffer/service/context_state.h" |
10 #include "gpu/command_buffer/service/error_state.h" | 10 #include "gpu/command_buffer/service/error_state.h" |
(...skipping 822 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
833 Texture::LevelInfo& info = | 833 Texture::LevelInfo& info = |
834 level_infos_[GLTargetToFaceIndex(target)][level]; | 834 level_infos_[GLTargetToFaceIndex(target)][level]; |
835 DCHECK_EQ(info.target, target); | 835 DCHECK_EQ(info.target, target); |
836 DCHECK_EQ(info.level, level); | 836 DCHECK_EQ(info.level, level); |
837 info.image = image; | 837 info.image = image; |
838 UpdateCanRenderCondition(); | 838 UpdateCanRenderCondition(); |
839 UpdateHasImages(); | 839 UpdateHasImages(); |
840 } | 840 } |
841 | 841 |
842 gfx::GLImage* Texture::GetLevelImage(GLint target, GLint level) const { | 842 gfx::GLImage* Texture::GetLevelImage(GLint target, GLint level) const { |
| 843 if (target != GL_TEXTURE_2D && target != GL_TEXTURE_EXTERNAL_OES && |
| 844 target != GL_TEXTURE_RECTANGLE_ARB) { |
| 845 return NULL; |
| 846 } |
| 847 |
843 size_t face_index = GLTargetToFaceIndex(target); | 848 size_t face_index = GLTargetToFaceIndex(target); |
844 if (level >= 0 && face_index < level_infos_.size() && | 849 if (level >= 0 && face_index < level_infos_.size() && |
845 static_cast<size_t>(level) < level_infos_[face_index].size()) { | 850 static_cast<size_t>(level) < level_infos_[face_index].size()) { |
846 const LevelInfo& info = level_infos_[GLTargetToFaceIndex(target)][level]; | 851 const LevelInfo& info = level_infos_[GLTargetToFaceIndex(target)][level]; |
847 if (info.target != 0) { | 852 if (info.target != 0) { |
848 return info.image.get(); | 853 return info.image.get(); |
849 } | 854 } |
850 } | 855 } |
851 return 0; | 856 return 0; |
852 } | 857 } |
853 | 858 |
| 859 void Texture::OnWillModifyPixels() { |
| 860 gfx::GLImage* image = GetLevelImage(target(), 0); |
| 861 if (image) |
| 862 image->WillModifyTexImage(); |
| 863 } |
| 864 |
| 865 void Texture::OnDidModifyPixels() { |
| 866 gfx::GLImage* image = GetLevelImage(target(), 0); |
| 867 if (image) |
| 868 image->DidModifyTexImage(); |
| 869 } |
854 | 870 |
855 TextureRef::TextureRef(TextureManager* manager, | 871 TextureRef::TextureRef(TextureManager* manager, |
856 GLuint client_id, | 872 GLuint client_id, |
857 Texture* texture) | 873 Texture* texture) |
858 : manager_(manager), | 874 : manager_(manager), |
859 texture_(texture), | 875 texture_(texture), |
860 client_id_(client_id) { | 876 client_id_(client_id) { |
861 DCHECK(manager_); | 877 DCHECK(manager_); |
862 DCHECK(texture_); | 878 DCHECK(texture_); |
863 texture_->AddTextureRef(this); | 879 texture_->AddTextureRef(this); |
(...skipping 687 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1551 } | 1567 } |
1552 | 1568 |
1553 ScopedTextureUploadTimer::~ScopedTextureUploadTimer() { | 1569 ScopedTextureUploadTimer::~ScopedTextureUploadTimer() { |
1554 texture_state_->texture_upload_count++; | 1570 texture_state_->texture_upload_count++; |
1555 texture_state_->total_texture_upload_time += | 1571 texture_state_->total_texture_upload_time += |
1556 base::TimeTicks::HighResNow() - begin_time_; | 1572 base::TimeTicks::HighResNow() - begin_time_; |
1557 } | 1573 } |
1558 | 1574 |
1559 } // namespace gles2 | 1575 } // namespace gles2 |
1560 } // namespace gpu | 1576 } // namespace gpu |
OLD | NEW |