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