Index: mojo/examples/aura_demo/context_factory_view_manager.cc |
diff --git a/mojo/examples/aura_demo/context_factory_view_manager.cc b/mojo/examples/aura_demo/context_factory_view_manager.cc |
deleted file mode 100644 |
index 46596c333450f0658392a5b407526524c6b592d8..0000000000000000000000000000000000000000 |
--- a/mojo/examples/aura_demo/context_factory_view_manager.cc |
+++ /dev/null |
@@ -1,194 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "mojo/examples/aura_demo/context_factory_view_manager.h" |
- |
-#include "base/bind.h" |
-#include "cc/output/output_surface.h" |
-#include "cc/output/software_output_device.h" |
-#include "cc/resources/shared_bitmap_manager.h" |
-#include "mojo/services/public/interfaces/view_manager/view_manager.mojom.h" |
-#include "skia/ext/platform_canvas.h" |
-#include "ui/compositor/reflector.h" |
-#include "ui/gfx/codec/png_codec.h" |
- |
-namespace mojo { |
-namespace examples { |
-namespace { |
- |
-void FreeSharedBitmap(cc::SharedBitmap* shared_bitmap) { |
- delete shared_bitmap->memory(); |
-} |
- |
-void IgnoreSharedBitmap(cc::SharedBitmap* shared_bitmap) {} |
- |
-bool CreateMapAndDupSharedBuffer(size_t size, |
- void** memory, |
- ScopedSharedBufferHandle* handle, |
- ScopedSharedBufferHandle* duped) { |
- MojoResult result = CreateSharedBuffer(NULL, size, handle); |
- if (result != MOJO_RESULT_OK) |
- return false; |
- DCHECK(handle->is_valid()); |
- |
- result = DuplicateBuffer(handle->get(), NULL, duped); |
- if (result != MOJO_RESULT_OK) |
- return false; |
- DCHECK(duped->is_valid()); |
- |
- result = MapBuffer( |
- handle->get(), 0, size, memory, MOJO_MAP_BUFFER_FLAG_NONE); |
- if (result != MOJO_RESULT_OK) |
- return false; |
- DCHECK(*memory); |
- |
- return true; |
-} |
- |
-class SoftwareOutputDeviceViewManager : public cc::SoftwareOutputDevice { |
- public: |
- explicit SoftwareOutputDeviceViewManager( |
- view_manager::IViewManager* view_manager, |
- uint32_t view_id) |
- : view_manager_(view_manager), |
- view_id_(view_id) { |
- } |
- virtual ~SoftwareOutputDeviceViewManager() {} |
- |
- // cc::SoftwareOutputDevice: |
- virtual void EndPaint(cc::SoftwareFrameData* frame_data) OVERRIDE { |
- SetViewContents(); |
- |
- SoftwareOutputDevice::EndPaint(frame_data); |
- } |
- |
- private: |
- void OnSetViewContentsDone(bool value) { |
- VLOG(1) << "SoftwareOutputDeviceManager::OnSetViewContentsDone " << value; |
- DCHECK(value); |
- } |
- |
- void SetViewContents() { |
- std::vector<unsigned char> data; |
- gfx::PNGCodec::EncodeBGRASkBitmap( |
- skia::GetTopDevice(*canvas_)->accessBitmap(true), false, &data); |
- |
- void* memory = NULL; |
- ScopedSharedBufferHandle duped; |
- bool result = CreateMapAndDupSharedBuffer(data.size(), |
- &memory, |
- &shared_state_handle_, |
- &duped); |
- if (!result) |
- return; |
- |
- memcpy(memory, &data[0], data.size()); |
- |
- view_manager_->SetViewContents( |
- view_id_, duped.Pass(), static_cast<uint32_t>(data.size()), |
- base::Bind(&SoftwareOutputDeviceViewManager::OnSetViewContentsDone, |
- base::Unretained(this))); |
- } |
- |
- view_manager::IViewManager* view_manager_; |
- const uint32_t view_id_; |
- ScopedSharedBufferHandle shared_state_handle_; |
- |
- DISALLOW_COPY_AND_ASSIGN(SoftwareOutputDeviceViewManager); |
-}; |
- |
-// TODO(sky): this is a copy from cc/test. Copy to a common place. |
-class TestSharedBitmapManager : public cc::SharedBitmapManager { |
- public: |
- TestSharedBitmapManager() {} |
- virtual ~TestSharedBitmapManager() {} |
- |
- virtual scoped_ptr<cc::SharedBitmap> AllocateSharedBitmap( |
- const gfx::Size& size) OVERRIDE { |
- base::AutoLock lock(lock_); |
- scoped_ptr<base::SharedMemory> memory(new base::SharedMemory); |
- memory->CreateAndMapAnonymous(size.GetArea() * 4); |
- cc::SharedBitmapId id = cc::SharedBitmap::GenerateId(); |
- bitmap_map_[id] = memory.get(); |
- return scoped_ptr<cc::SharedBitmap>( |
- new cc::SharedBitmap(memory.release(), id, |
- base::Bind(&FreeSharedBitmap))); |
- } |
- |
- virtual scoped_ptr<cc::SharedBitmap> GetSharedBitmapFromId( |
- const gfx::Size&, |
- const cc::SharedBitmapId& id) OVERRIDE { |
- base::AutoLock lock(lock_); |
- if (bitmap_map_.find(id) == bitmap_map_.end()) |
- return scoped_ptr<cc::SharedBitmap>(); |
- return scoped_ptr<cc::SharedBitmap>( |
- new cc::SharedBitmap(bitmap_map_[id], id, |
- base::Bind(&IgnoreSharedBitmap))); |
- } |
- |
- virtual scoped_ptr<cc::SharedBitmap> GetBitmapForSharedMemory( |
- base::SharedMemory* memory) OVERRIDE { |
- base::AutoLock lock(lock_); |
- cc::SharedBitmapId id = cc::SharedBitmap::GenerateId(); |
- bitmap_map_[id] = memory; |
- return scoped_ptr<cc::SharedBitmap>( |
- new cc::SharedBitmap(memory, id, base::Bind(&IgnoreSharedBitmap))); |
- } |
- |
- private: |
- base::Lock lock_; |
- std::map<cc::SharedBitmapId, base::SharedMemory*> bitmap_map_; |
- |
- DISALLOW_COPY_AND_ASSIGN(TestSharedBitmapManager); |
-}; |
- |
-} // namespace |
- |
-ContextFactoryViewManager::ContextFactoryViewManager( |
- view_manager::IViewManager* view_manager, |
- uint32_t view_id) |
- : view_manager_(view_manager), |
- view_id_(view_id), |
- shared_bitmap_manager_(new TestSharedBitmapManager()) { |
-} |
- |
-ContextFactoryViewManager::~ContextFactoryViewManager() {} |
- |
-scoped_ptr<cc::OutputSurface> ContextFactoryViewManager::CreateOutputSurface( |
- ui::Compositor* compositor, |
- bool software_fallback) { |
- scoped_ptr<cc::SoftwareOutputDevice> output_device( |
- new SoftwareOutputDeviceViewManager(view_manager_, view_id_)); |
- return make_scoped_ptr(new cc::OutputSurface(output_device.Pass())); |
-} |
- |
-scoped_refptr<ui::Reflector> ContextFactoryViewManager::CreateReflector( |
- ui::Compositor* mirroed_compositor, |
- ui::Layer* mirroring_layer) { |
- return new ui::Reflector(); |
-} |
- |
-void ContextFactoryViewManager::RemoveReflector( |
- scoped_refptr<ui::Reflector> reflector) { |
-} |
- |
-scoped_refptr<cc::ContextProvider> |
-ContextFactoryViewManager::SharedMainThreadContextProvider() { |
- return scoped_refptr<cc::ContextProvider>(NULL); |
-} |
- |
-void ContextFactoryViewManager::RemoveCompositor(ui::Compositor* compositor) {} |
- |
-bool ContextFactoryViewManager::DoesCreateTestContexts() { return false; } |
- |
-cc::SharedBitmapManager* ContextFactoryViewManager::GetSharedBitmapManager() { |
- return shared_bitmap_manager_.get(); |
-} |
- |
-base::MessageLoopProxy* ContextFactoryViewManager::GetCompositorMessageLoop() { |
- return NULL; |
-} |
- |
-} // namespace examples |
-} // namespace mojo |