diff options
author | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-02 06:52:46 +0000 |
---|---|---|
committer | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-02 06:52:46 +0000 |
commit | cde7921316422aad0569127571623afd099df5f1 (patch) | |
tree | f54abf318581399ab25d48dbb27f88de756fd9ef /cc/surfaces/surface_factory.cc | |
parent | c6c2f06f650af6b9b05d3040d49111dce9deba59 (diff) | |
download | chromium_src-cde7921316422aad0569127571623afd099df5f1.zip chromium_src-cde7921316422aad0569127571623afd099df5f1.tar.gz chromium_src-cde7921316422aad0569127571623afd099df5f1.tar.bz2 |
Allocate surface IDs on client side
This is much easier to manage for clients using surfaces in an
asynchronous way (i.e. over a mojo pipe or chromium IPC). The code
translating from the IPC layer to SurfaceFactory can validate that the
namespace of SurfaceIds matches the logical connection it is managing.
Review URL: https://codereview.chromium.org/358003003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@280950 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/surfaces/surface_factory.cc')
-rw-r--r-- | cc/surfaces/surface_factory.cc | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/cc/surfaces/surface_factory.cc b/cc/surfaces/surface_factory.cc index 09c9f45..69ee02a 100644 --- a/cc/surfaces/surface_factory.cc +++ b/cc/surfaces/surface_factory.cc @@ -19,12 +19,11 @@ SurfaceFactory::~SurfaceFactory() { DCHECK_EQ(0u, surface_map_.size()); } -SurfaceId SurfaceFactory::Create(const gfx::Size& size) { - SurfaceId id = manager_->AllocateId(); - scoped_ptr<Surface> surface(new Surface(id, size, this)); +void SurfaceFactory::Create(SurfaceId surface_id, const gfx::Size& size) { + scoped_ptr<Surface> surface(new Surface(surface_id, size, this)); manager_->RegisterSurface(surface.get()); - surface_map_.add(id, surface.Pass()); - return id; + DCHECK(!surface_map_.count(surface_id)); + surface_map_.add(surface_id, surface.Pass()); } void SurfaceFactory::Destroy(SurfaceId surface_id) { |