| // 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 <GLES2/gl2.h> |
| #include <GLES2/gl2ext.h> |
| |
| #include <android/native_window_jni.h> |
| |
| #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" |
| #include "ui/gl/init/gl_factory.h" |
| |
| namespace gpu { |
| |
| class GLSurfaceTextureTest : public testing::Test { |
| protected: |
| void SetUp() override { gl_.Initialize(GLManager::Options()); } |
| |
| 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<gl::SurfaceTexture> surface_texture( |
| gl::SurfaceTexture::Create(texture)); |
| gfx::AcceleratedWidget window = surface_texture->CreateSurface(); |
| EXPECT_TRUE(window != nullptr); |
| |
| scoped_refptr<gl::GLSurface> gl_surface = |
| gl::init::CreateViewGLSurface(window); |
| EXPECT_TRUE(gl_surface.get() != nullptr); |
| |
| 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 |
| |