1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include <GLES2/gl2.h> 6#include <GLES2/gl2ext.h> 7 8#include "base/logging.h" 9#include "gpu/command_buffer/tests/gl_manager.h" 10#include "gpu/command_buffer/tests/gl_test_utils.h" 11#include "testing/gmock/include/gmock/gmock.h" 12#include "testing/gtest/include/gtest/gtest.h" 13 14namespace gpu { 15 16class GLSharedResources : public testing::Test { 17 protected: 18 virtual void SetUp() { 19 GLManager::Options options; 20 options.bind_generates_resource = true; 21 gl1_.Initialize(options); 22 options.share_group_manager = &gl1_; 23 gl2_.Initialize(options); 24 } 25 26 virtual void TearDown() { 27 gl1_.Destroy(); 28 gl2_.Destroy(); 29 } 30 31 GLManager gl1_; 32 GLManager gl2_; 33}; 34 35// Test that GL creating/deleting works across context. 36TEST_F(GLSharedResources, CreateDelete) { 37 gl1_.MakeCurrent(); 38 GLuint tex = 0; 39 glGenTextures(1, &tex); 40 gl2_.MakeCurrent(); 41 glBindTexture(GL_TEXTURE_2D, tex); 42 glDeleteTextures(1, &tex); 43 gl1_.MakeCurrent(); 44 glBindTexture(GL_TEXTURE_2D,tex); 45 GLTestHelper::CheckGLError("no errors", __LINE__); 46 gl2_.MakeCurrent(); 47 GLTestHelper::CheckGLError("no errors", __LINE__); 48} 49 50} // namespace gpu 51 52