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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/bind_helpers.h" | 6 #include "base/bind_helpers.h" |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/debug/trace_event.h" | 8 #include "base/debug/trace_event.h" |
9 #include "base/hash.h" | 9 #include "base/hash.h" |
10 #include "base/memory/shared_memory.h" | 10 #include "base/memory/shared_memory.h" |
(...skipping 925 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
936 gfx::Size(width, height), | 936 gfx::Size(width, height), |
937 internalformat, | 937 internalformat, |
938 channel()->client_id()); | 938 channel()->client_id()); |
939 if (!image) | 939 if (!image) |
940 return; | 940 return; |
941 | 941 |
942 // For Android specific workaround. | 942 // For Android specific workaround. |
943 if (context_group_->feature_info()->workarounds().release_image_after_use) | 943 if (context_group_->feature_info()->workarounds().release_image_after_use) |
944 image->SetReleaseAfterUse(); | 944 image->SetReleaseAfterUse(); |
945 | 945 |
946 if (decoder_) { | 946 if (decoder_) { |
reveman
2014/07/30 15:16:04
What if this check fails? That will cause the imag
sohanjg
2014/07/30 15:34:44
Acknowledged.
| |
947 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager(); | 947 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager(); |
948 DCHECK(image_manager); | 948 DCHECK(image_manager); |
949 if (image_manager->LookupImage(id)) { | |
950 LOG(ERROR) << "Image already exists with same ID."; | |
951 return; | |
no sievers
2014/07/30 15:11:27
Now you can move 949-952 to before line 932.
sohanjg
2014/07/30 15:34:44
Done.
| |
952 } | |
reveman
2014/07/30 15:16:06
This check needs to happen before CreateImageForGp
sohanjg
2014/07/30 15:34:44
Done.
| |
949 image_manager->AddImage(image.get(), id); | 953 image_manager->AddImage(image.get(), id); |
950 } | 954 } |
951 } | 955 } |
952 | 956 |
953 void GpuCommandBufferStub::OnDestroyGpuMemoryBuffer(int32 id) { | 957 void GpuCommandBufferStub::OnDestroyGpuMemoryBuffer(int32 id) { |
954 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnDestroyGpuMemoryBuffer"); | 958 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnDestroyGpuMemoryBuffer"); |
955 | 959 |
956 if (decoder_) { | 960 if (decoder_) { |
reveman
2014/07/30 15:16:05
depending on what you do in the function above you
sohanjg
2014/07/30 15:34:44
Done.
| |
957 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager(); | 961 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager(); |
958 DCHECK(image_manager); | 962 DCHECK(image_manager); |
963 if (!image_manager->LookupImage(id)) { | |
964 LOG(ERROR) << "Image with ID doesn't exist."; | |
965 return; | |
966 } | |
959 image_manager->RemoveImage(id); | 967 image_manager->RemoveImage(id); |
960 } | 968 } |
961 } | 969 } |
962 | 970 |
963 void GpuCommandBufferStub::SendConsoleMessage( | 971 void GpuCommandBufferStub::SendConsoleMessage( |
964 int32 id, | 972 int32 id, |
965 const std::string& message) { | 973 const std::string& message) { |
966 GPUCommandBufferConsoleMessage console_message; | 974 GPUCommandBufferConsoleMessage console_message; |
967 console_message.id = id; | 975 console_message.id = id; |
968 console_message.message = message; | 976 console_message.message = message; |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1052 if (decoder_) | 1060 if (decoder_) |
1053 decoder_->LoseContext(GL_UNKNOWN_CONTEXT_RESET_ARB); | 1061 decoder_->LoseContext(GL_UNKNOWN_CONTEXT_RESET_ARB); |
1054 command_buffer_->SetParseError(gpu::error::kLostContext); | 1062 command_buffer_->SetParseError(gpu::error::kLostContext); |
1055 } | 1063 } |
1056 | 1064 |
1057 uint64 GpuCommandBufferStub::GetMemoryUsage() const { | 1065 uint64 GpuCommandBufferStub::GetMemoryUsage() const { |
1058 return GetMemoryManager()->GetClientMemoryUsage(this); | 1066 return GetMemoryManager()->GetClientMemoryUsage(this); |
1059 } | 1067 } |
1060 | 1068 |
1061 } // namespace content | 1069 } // namespace content |
OLD | NEW |