// Copyright (c) 2013 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 #include "base/bind.h" #include "base/logging.h" #include "base/synchronization/waitable_event.h" #include "gpu/command_buffer/tests/gl_manager.h" #include "gpu/command_buffer/tests/gl_test_utils.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/gfx/native_widget_types.h" #include "ui/gl/android/surface_texture.h" #include "ui/gl/gl_surface.h" namespace gpu { class GLSurfaceTextureTest : public testing::Test { protected: virtual void SetUp() OVERRIDE { gl_.Initialize(GLManager::Options()); } virtual void TearDown() OVERRIDE { gl_.Destroy(); } GLManager gl_; }; TEST_F(GLSurfaceTextureTest, SimpleTest) { // TODO(sievers): Eliminate the need for this by using a client-side // abstraction for the SurfaceTexture in this test. GLuint texture = 0xFEEDBEEF; scoped_refptr surface_texture( new gfx::SurfaceTexture(texture)); gfx::AcceleratedWidget window = surface_texture->CreateSurface(); EXPECT_TRUE(window != NULL); scoped_refptr gl_surface = gfx::GLSurface::CreateViewGLSurface(window); EXPECT_TRUE(gl_surface.get() != NULL); gl_.SetSurface(gl_surface.get()); glClearColor(0.0f, 1.0f, 0.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); // glSwapBuffers(); surface_texture->UpdateTexImage(); GLTestHelper::CheckGLError("no errors", __LINE__); ANativeWindow_release(window); } } // namespace gpu