Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Side by Side Diff: ppapi/proxy/ppb_image_data_proxy.cc

Issue 1320783002: Make SharedMemoryHandle a class on windows. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ipc_global
Patch Set: Rebase. Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « mojo/gles2/command_buffer_client_impl.cc ('k') | remoting/host/desktop_session_agent.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "ppapi/proxy/ppb_image_data_proxy.h" 5 #include "ppapi/proxy/ppb_image_data_proxy.h"
6 6
7 #include <string.h> // For memcpy 7 #include <string.h> // For memcpy
8 8
9 #include <map> 9 #include <map>
10 #include <vector> 10 #include <vector>
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 } 368 }
369 369
370 // PlatformImageData ----------------------------------------------------------- 370 // PlatformImageData -----------------------------------------------------------
371 371
372 #if !defined(OS_NACL) 372 #if !defined(OS_NACL)
373 PlatformImageData::PlatformImageData(const HostResource& resource, 373 PlatformImageData::PlatformImageData(const HostResource& resource,
374 const PP_ImageDataDesc& desc, 374 const PP_ImageDataDesc& desc,
375 ImageHandle handle) 375 ImageHandle handle)
376 : ImageData(resource, PPB_ImageData_Shared::PLATFORM, desc) { 376 : ImageData(resource, PPB_ImageData_Shared::PLATFORM, desc) {
377 #if defined(OS_WIN) 377 #if defined(OS_WIN)
378 transport_dib_.reset(TransportDIB::CreateWithHandle(handle)); 378 transport_dib_.reset(TransportDIB::CreateWithHandle(
379 base::SharedMemoryHandle(handle, base::GetCurrentProcId())));
379 #else 380 #else
380 transport_dib_.reset(TransportDIB::Map(handle)); 381 transport_dib_.reset(TransportDIB::Map(handle));
381 #endif // defined(OS_WIN) 382 #endif // defined(OS_WIN)
382 } 383 }
383 384
384 PlatformImageData::~PlatformImageData() { 385 PlatformImageData::~PlatformImageData() {
385 } 386 }
386 387
387 void* PlatformImageData::Map() { 388 void* PlatformImageData::Map() {
388 if (!mapped_canvas_.get()) { 389 if (!mapped_canvas_.get()) {
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
620 uint32_t byte_count; 621 uint32_t byte_count;
621 PP_Resource resource = 622 PP_Resource resource =
622 CreateImageData(instance, 623 CreateImageData(instance,
623 PPB_ImageData_Shared::PLATFORM, 624 PPB_ImageData_Shared::PLATFORM,
624 static_cast<PP_ImageDataFormat>(format), 625 static_cast<PP_ImageDataFormat>(format),
625 size, 626 size,
626 true /* init_to_zero */, 627 true /* init_to_zero */,
627 desc, &image_handle, &byte_count); 628 desc, &image_handle, &byte_count);
628 result->SetHostResource(instance, resource); 629 result->SetHostResource(instance, resource);
629 if (resource) { 630 if (resource) {
631 #if defined(OS_WIN)
632 *result_image_handle = image_handle.GetHandle();
633 #else
630 *result_image_handle = image_handle; 634 *result_image_handle = image_handle;
635 #endif
631 } else { 636 } else {
632 *result_image_handle = PlatformImageData::NullHandle(); 637 *result_image_handle = PlatformImageData::NullHandle();
633 } 638 }
634 } 639 }
635 640
636 void PPB_ImageData_Proxy::OnHostMsgCreateSimple( 641 void PPB_ImageData_Proxy::OnHostMsgCreateSimple(
637 PP_Instance instance, 642 PP_Instance instance,
638 int32_t format, 643 int32_t format,
639 const PP_Size& size, 644 const PP_Size& size,
640 PP_Bool init_to_zero, 645 PP_Bool init_to_zero,
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
680 // still cached in our process, the proxy still holds a reference so we can 685 // still cached in our process, the proxy still holds a reference so we can
681 // remove the one the renderer just sent is. If the proxy no longer holds a 686 // remove the one the renderer just sent is. If the proxy no longer holds a
682 // reference, we released everything and we should also release the one the 687 // reference, we released everything and we should also release the one the
683 // renderer just sent us. 688 // renderer just sent us.
684 dispatcher()->Send(new PpapiHostMsg_PPBCore_ReleaseResource( 689 dispatcher()->Send(new PpapiHostMsg_PPBCore_ReleaseResource(
685 API_ID_PPB_CORE, old_image_data)); 690 API_ID_PPB_CORE, old_image_data));
686 } 691 }
687 692
688 } // namespace proxy 693 } // namespace proxy
689 } // namespace ppapi 694 } // namespace ppapi
OLDNEW
« no previous file with comments | « mojo/gles2/command_buffer_client_impl.cc ('k') | remoting/host/desktop_session_agent.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698