ozone: fix HDPMLegacy - do the PF after overlays, also clear old overlays
[chromium-blink-merge.git] / ui / ozone / platform / dri / dri_window_delegate_manager.cc
blob814d30189c32166244da41d81e11b907008a4b2e
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "ui/ozone/platform/dri/dri_window_delegate_manager.h"
7 #include "ui/ozone/platform/dri/dri_window_delegate.h"
9 namespace ui {
11 DriWindowDelegateManager::DriWindowDelegateManager() {
14 DriWindowDelegateManager::~DriWindowDelegateManager() {
15 DCHECK(delegate_map_.empty());
18 void DriWindowDelegateManager::AddWindowDelegate(
19 gfx::AcceleratedWidget widget,
20 scoped_ptr<DriWindowDelegate> delegate) {
21 std::pair<WidgetToDelegateMap::iterator, bool> result =
22 delegate_map_.add(widget, delegate.Pass());
23 DCHECK(result.second) << "Delegate already added.";
26 scoped_ptr<DriWindowDelegate> DriWindowDelegateManager::RemoveWindowDelegate(
27 gfx::AcceleratedWidget widget) {
28 scoped_ptr<DriWindowDelegate> delegate = delegate_map_.take_and_erase(widget);
29 DCHECK(delegate) << "Attempting to remove non-existing delegate for "
30 << widget;
31 return delegate.Pass();
34 DriWindowDelegate* DriWindowDelegateManager::GetWindowDelegate(
35 gfx::AcceleratedWidget widget) {
36 WidgetToDelegateMap::iterator it = delegate_map_.find(widget);
37 if (it != delegate_map_.end())
38 return it->second;
40 NOTREACHED() << "Attempting to get non-existing delegate for " << widget;
41 return NULL;
44 } // namespace ui