// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include #include #include "base/memory/ref_counted_memory.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/gl/gl_image_ref_counted_memory.h" #include "ui/gl/test/gl_image_test_template.h" namespace gl { namespace { template class GLImageRefCountedMemoryTestDelegate { public: scoped_refptr CreateSolidColorImage( const gfx::Size& size, const uint8_t color[4]) const { DCHECK_EQ(NumberOfPlanesForBufferFormat(format), 1u); std::vector data(gfx::BufferSizeForBufferFormat(size, format)); scoped_refptr bytes(new base::RefCountedBytes(data)); GLImageTestSupport::SetBufferDataToColor( size.width(), size.height(), static_cast(RowSizeForBufferFormat(size.width(), format, 0)), 0, format, color, &bytes->data().front()); scoped_refptr image(new GLImageRefCountedMemory( size, gl::GLImageMemory::GetInternalFormatForTesting(format))); bool rv = image->Initialize(bytes.get(), format); EXPECT_TRUE(rv); return image; } unsigned GetTextureTarget() const { return GL_TEXTURE_2D; } }; using GLImageTestTypes = testing::Types< GLImageRefCountedMemoryTestDelegate, GLImageRefCountedMemoryTestDelegate, GLImageRefCountedMemoryTestDelegate, GLImageRefCountedMemoryTestDelegate>; INSTANTIATE_TYPED_TEST_CASE_P(GLImageRefCountedMemory, GLImageTest, GLImageTestTypes); INSTANTIATE_TYPED_TEST_CASE_P(GLImageRefCountedMemory, GLImageCopyTest, GLImageTestTypes); } // namespace } // namespace gl