1f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// found in the LICENSE file.
4f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
5f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "ppapi/shared_impl/compositor_layer_data.h"
6f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
7f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)namespace ppapi {
8f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
9f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)namespace {
10f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
11f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)template<typename T>
12f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void Copy(scoped_ptr<T>* a, const scoped_ptr<T>& b) {
13f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  if (b) {
14f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    if (!(*a))
15f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      a->reset(new T());
16f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    **a = *b;
17f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  } else {
18f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    a->reset();
19f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  }
20f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
21f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
22f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}  // namespace
23f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
24f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)const CompositorLayerData& CompositorLayerData::operator=(
25f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    const CompositorLayerData& other) {
26f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  DCHECK(other.is_null() || other.is_valid());
27f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
28f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  common = other.common;
29f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  Copy(&color, other.color);
30f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  Copy(&texture, other.texture);
31f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  Copy(&image, other.image);
32f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  return *this;
34f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
35f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
36f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}  // namespace ppapi
37