| 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 "content/renderer/pepper/pepper_plugin_instance_impl.h" | 5 #include "content/renderer/pepper/pepper_plugin_instance_impl.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/bit_cast.h" | 10 #include "base/bit_cast.h" |
| (...skipping 2790 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2801 return PP_FALSE; | 2801 return PP_FALSE; |
| 2802 | 2802 |
| 2803 std::unique_ptr<WebCursorInfo> custom_cursor( | 2803 std::unique_ptr<WebCursorInfo> custom_cursor( |
| 2804 new WebCursorInfo(WebCursorInfo::kTypeCustom)); | 2804 new WebCursorInfo(WebCursorInfo::kTypeCustom)); |
| 2805 custom_cursor->hot_spot.x = hot_spot->x; | 2805 custom_cursor->hot_spot.x = hot_spot->x; |
| 2806 custom_cursor->hot_spot.y = hot_spot->y; | 2806 custom_cursor->hot_spot.y = hot_spot->y; |
| 2807 | 2807 |
| 2808 SkBitmap bitmap(image_data->GetMappedBitmap()); | 2808 SkBitmap bitmap(image_data->GetMappedBitmap()); |
| 2809 // Make a deep copy, so that the cursor remains valid even after the original | 2809 // Make a deep copy, so that the cursor remains valid even after the original |
| 2810 // image data gets freed. | 2810 // image data gets freed. |
| 2811 if (!bitmap.copyTo(&custom_cursor->custom_image.GetSkBitmap())) { | 2811 SkBitmap& dst = custom_cursor->custom_image.GetSkBitmap(); |
| 2812 if (!dst.tryAllocPixels(bitmap.info()) || |
| 2813 !bitmap.readPixels(dst.info(), dst.getPixels(), dst.rowBytes(), 0, 0)) { |
| 2812 return PP_FALSE; | 2814 return PP_FALSE; |
| 2813 } | 2815 } |
| 2814 | 2816 |
| 2815 DoSetCursor(custom_cursor.release()); | 2817 DoSetCursor(custom_cursor.release()); |
| 2816 return PP_TRUE; | 2818 return PP_TRUE; |
| 2817 } | 2819 } |
| 2818 | 2820 |
| 2819 int32_t PepperPluginInstanceImpl::LockMouse( | 2821 int32_t PepperPluginInstanceImpl::LockMouse( |
| 2820 PP_Instance instance, | 2822 PP_Instance instance, |
| 2821 scoped_refptr<TrackedCallback> callback) { | 2823 scoped_refptr<TrackedCallback> callback) { |
| (...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3453 const cc::TextureMailbox& mailbox) const { | 3455 const cc::TextureMailbox& mailbox) const { |
| 3454 auto it = | 3456 auto it = |
| 3455 std::find_if(texture_ref_counts_.begin(), texture_ref_counts_.end(), | 3457 std::find_if(texture_ref_counts_.begin(), texture_ref_counts_.end(), |
| 3456 [&mailbox](const TextureMailboxRefCount& ref_count) { | 3458 [&mailbox](const TextureMailboxRefCount& ref_count) { |
| 3457 return ref_count.first.mailbox() == mailbox.mailbox(); | 3459 return ref_count.first.mailbox() == mailbox.mailbox(); |
| 3458 }); | 3460 }); |
| 3459 return it != texture_ref_counts_.end(); | 3461 return it != texture_ref_counts_.end(); |
| 3460 } | 3462 } |
| 3461 | 3463 |
| 3462 } // namespace content | 3464 } // namespace content |
| OLD | NEW |