15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// found in the LICENSE file. 45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "ui/gl/gl_image_ref_counted_memory.h" 65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/logging.h" 85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/memory/ref_counted_memory.h" 95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace gfx { 115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)GLImageRefCountedMemory::GLImageRefCountedMemory(const gfx::Size& size, 135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) unsigned internalformat) 145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) : GLImageMemory(size, internalformat) { 155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)GLImageRefCountedMemory::~GLImageRefCountedMemory() { 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci DCHECK(!ref_counted_memory_.get()); 195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)bool GLImageRefCountedMemory::Initialize( 225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) base::RefCountedMemory* ref_counted_memory) { 235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) if (!HasValidFormat()) 245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return false; 255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci DCHECK(!ref_counted_memory_.get()); 275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) ref_counted_memory_ = ref_counted_memory; 285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GLImageMemory::Initialize(ref_counted_memory_->front()); 295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return true; 305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)void GLImageRefCountedMemory::Destroy(bool have_context) { 335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) GLImageMemory::Destroy(have_context); 345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) ref_counted_memory_ = NULL; 355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} // namespace gfx 38