| Index: ui/gl/test/gl_image_test_template.h
 | 
| diff --git a/ui/gl/test/gl_image_test_template.h b/ui/gl/test/gl_image_test_template.h
 | 
| deleted file mode 100644
 | 
| index 8533ce20c44d7c824e4e1fdf3e52d5935ae57406..0000000000000000000000000000000000000000
 | 
| --- a/ui/gl/test/gl_image_test_template.h
 | 
| +++ /dev/null
 | 
| @@ -1,182 +0,0 @@
 | 
| -// 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.
 | 
| -
 | 
| -// This file defines tests that implementations of GLImage should pass in order
 | 
| -// to be conformant.
 | 
| -
 | 
| -#ifndef UI_GL_TEST_GL_IMAGE_TEST_TEMPLATE_H_
 | 
| -#define UI_GL_TEST_GL_IMAGE_TEST_TEMPLATE_H_
 | 
| -
 | 
| -#include "base/basictypes.h"
 | 
| -#include "base/memory/scoped_ptr.h"
 | 
| -#include "base/strings/stringize_macros.h"
 | 
| -#include "base/strings/stringprintf.h"
 | 
| -#include "testing/gtest/include/gtest/gtest.h"
 | 
| -#include "ui/gfx/buffer_format_util.h"
 | 
| -#include "ui/gfx/buffer_types.h"
 | 
| -#include "ui/gl/gl_bindings.h"
 | 
| -#include "ui/gl/gl_context.h"
 | 
| -#include "ui/gl/gl_image.h"
 | 
| -#include "ui/gl/gl_implementation.h"
 | 
| -#include "ui/gl/gl_surface.h"
 | 
| -#include "ui/gl/test/gl_image_test_support.h"
 | 
| -#include "ui/gl/test/gl_test_helper.h"
 | 
| -
 | 
| -namespace gfx {
 | 
| -
 | 
| -template <typename GLImageTestDelegate>
 | 
| -class GLImageTest : public testing::Test {
 | 
| - protected:
 | 
| -  // Overridden from testing::Test:
 | 
| -  void SetUp() override {
 | 
| -    GLImageTestSupport::InitializeGL();
 | 
| -    surface_ = GLSurface::CreateOffscreenGLSurface(Size());
 | 
| -    context_ = GLContext::CreateGLContext(nullptr, surface_.get(),
 | 
| -                                          PreferIntegratedGpu);
 | 
| -    context_->MakeCurrent(surface_.get());
 | 
| -  }
 | 
| -  void TearDown() override {
 | 
| -    context_->ReleaseCurrent(surface_.get());
 | 
| -    context_ = nullptr;
 | 
| -    surface_ = nullptr;
 | 
| -    GLImageTestSupport::CleanupGL();
 | 
| -  }
 | 
| -
 | 
| - protected:
 | 
| -  scoped_refptr<GLSurface> surface_;
 | 
| -  scoped_refptr<GLContext> context_;
 | 
| -  GLImageTestDelegate delegate_;
 | 
| -};
 | 
| -
 | 
| -TYPED_TEST_CASE_P(GLImageTest);
 | 
| -
 | 
| -// Copy image to texture. Support is optional. Texels should be updated if
 | 
| -// supported, and left unchanged if not.
 | 
| -TYPED_TEST_P(GLImageTest, CopyTexSubImage) {
 | 
| -  const Size image_size(256, 256);
 | 
| -  const uint8_t image_color[] = {0, 0xff, 0, 0xff};
 | 
| -  const uint8_t texture_color[] = {0, 0, 0xff, 0xff};
 | 
| -
 | 
| -  GLuint framebuffer =
 | 
| -      GLTestHelper::SetupFramebuffer(image_size.width(), image_size.height());
 | 
| -  ASSERT_TRUE(framebuffer);
 | 
| -  glBindFramebufferEXT(GL_FRAMEBUFFER, framebuffer);
 | 
| -  glViewport(0, 0, image_size.width(), image_size.height());
 | 
| -
 | 
| -  // Create a solid color green image of preferred format. This must succeed
 | 
| -  // in order for a GLImage to be conformant.
 | 
| -  scoped_refptr<GLImage> image = this->delegate_.CreateSolidColorImage(
 | 
| -      image_size, GLImageTestSupport::GetPreferredInternalFormat(),
 | 
| -      GLImageTestSupport::GetPreferredBufferFormat(), image_color);
 | 
| -  ASSERT_TRUE(image);
 | 
| -
 | 
| -  // Create a solid color blue texture of the same size as |image|.
 | 
| -  GLuint texture = GLTestHelper::CreateTexture(GL_TEXTURE_2D);
 | 
| -  scoped_ptr<uint8_t[]> pixels(new uint8_t[BufferSizeForBufferFormat(
 | 
| -      image_size, GLImageTestSupport::GetPreferredBufferFormat())]);
 | 
| -  GLImageTestSupport::SetBufferDataToColor(
 | 
| -      image_size.width(), image_size.height(),
 | 
| -      static_cast<int>(RowSizeForBufferFormat(
 | 
| -          image_size.width(), GLImageTestSupport::GetPreferredBufferFormat(),
 | 
| -          0)),
 | 
| -      GLImageTestSupport::GetPreferredBufferFormat(), texture_color,
 | 
| -      pixels.get());
 | 
| -  // Note: This test assume that |image| can be used with GL_TEXTURE_2D but
 | 
| -  // that might not be the case for some GLImage implementations.
 | 
| -  glBindTexture(GL_TEXTURE_2D, texture);
 | 
| -  glTexImage2D(GL_TEXTURE_2D, 0,
 | 
| -               GLImageTestSupport::GetPreferredInternalFormat(),
 | 
| -               image_size.width(), image_size.height(), 0,
 | 
| -               GLImageTestSupport::GetPreferredInternalFormat(),
 | 
| -               GL_UNSIGNED_BYTE, pixels.get());
 | 
| -
 | 
| -  // Attempt to copy |image| to |texture|.
 | 
| -  // Returns true on success, false on failure.
 | 
| -  bool rv = image->CopyTexSubImage(GL_TEXTURE_2D, Point(), Rect(image_size));
 | 
| -
 | 
| -  // clang-format off
 | 
| -  const char kVertexShader[] = STRINGIZE(
 | 
| -    attribute vec2 a_position;
 | 
| -    attribute vec2 a_texCoord;
 | 
| -    varying vec2 v_texCoord;
 | 
| -    void main() {
 | 
| -      gl_Position = vec4(a_position.x, a_position.y, 0.0, 1.0);
 | 
| -      v_texCoord = a_texCoord;
 | 
| -    }
 | 
| -  );
 | 
| -  const char kFragmentShader[] = STRINGIZE(
 | 
| -    uniform sampler2D a_texture;
 | 
| -    varying vec2 v_texCoord;
 | 
| -    void main() {
 | 
| -      gl_FragColor = texture2D(a_texture, v_texCoord);
 | 
| -    }
 | 
| -  );
 | 
| -  const char kShaderFloatPrecision[] = STRINGIZE(
 | 
| -    precision mediump float;
 | 
| -  );
 | 
| -  // clang-format on
 | 
| -
 | 
| -  GLuint vertex_shader =
 | 
| -      GLTestHelper::LoadShader(GL_VERTEX_SHADER, kVertexShader);
 | 
| -  bool is_gles = GetGLImplementation() == kGLImplementationEGLGLES2;
 | 
| -  GLuint fragment_shader = GLTestHelper::LoadShader(
 | 
| -      GL_FRAGMENT_SHADER,
 | 
| -      base::StringPrintf("%s%s", is_gles ? kShaderFloatPrecision : "",
 | 
| -                         kFragmentShader)
 | 
| -          .c_str());
 | 
| -  GLuint program = GLTestHelper::SetupProgram(vertex_shader, fragment_shader);
 | 
| -  EXPECT_NE(program, 0u);
 | 
| -  glUseProgram(program);
 | 
| -
 | 
| -  GLint sampler_location = glGetUniformLocation(program, "a_texture");
 | 
| -  ASSERT_NE(sampler_location, -1);
 | 
| -  glUniform1i(sampler_location, 0);
 | 
| -
 | 
| -  // clang-format off
 | 
| -  static GLfloat vertices[] = {
 | 
| -    -1.f, -1.f, 0.f, 0.f,
 | 
| -     1.f, -1.f, 1.f, 0.f,
 | 
| -    -1.f,  1.f, 0.f, 1.f,
 | 
| -     1.f,  1.f, 1.f, 1.f
 | 
| -  };
 | 
| -  // clang-format on
 | 
| -
 | 
| -  GLuint vertex_buffer;
 | 
| -  glGenBuffersARB(1, &vertex_buffer);
 | 
| -  glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer);
 | 
| -  glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
 | 
| -  GLint position_location = glGetAttribLocation(program, "a_position");
 | 
| -  ASSERT_NE(position_location, -1);
 | 
| -  glEnableVertexAttribArray(position_location);
 | 
| -  glVertexAttribPointer(position_location, 2, GL_FLOAT, GL_FALSE,
 | 
| -                        sizeof(GLfloat) * 4, 0);
 | 
| -  GLint tex_coord_location = glGetAttribLocation(program, "a_texCoord");
 | 
| -  EXPECT_NE(tex_coord_location, -1);
 | 
| -  glEnableVertexAttribArray(tex_coord_location);
 | 
| -  glVertexAttribPointer(tex_coord_location, 2, GL_FLOAT, GL_FALSE,
 | 
| -                        sizeof(GLfloat) * 4,
 | 
| -                        reinterpret_cast<void*>(sizeof(GLfloat) * 2));
 | 
| -
 | 
| -  // Draw |texture| to viewport and read back pixels to check expectations.
 | 
| -  glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
 | 
| -  GLTestHelper::CheckPixels(0, 0, image_size.width(), image_size.height(),
 | 
| -                            rv ? image_color : texture_color);
 | 
| -
 | 
| -  // Clean up.
 | 
| -  glDeleteProgram(program);
 | 
| -  glDeleteShader(vertex_shader);
 | 
| -  glDeleteShader(fragment_shader);
 | 
| -  glDeleteBuffersARB(1, &vertex_buffer);
 | 
| -  glDeleteTextures(1, &texture);
 | 
| -  glDeleteFramebuffersEXT(1, &framebuffer);
 | 
| -  image->Destroy(true);
 | 
| -}
 | 
| -
 | 
| -// The GLImageTest test case verifies behaviour that is expected from a
 | 
| -// GLImage in order to be conformant.
 | 
| -REGISTER_TYPED_TEST_CASE_P(GLImageTest, CopyTexSubImage);
 | 
| -
 | 
| -}  // namespace gfx
 | 
| -
 | 
| -#endif  // UI_GL_TEST_GL_IMAGE_TEST_TEMPLATE_H_
 | 
| 
 |