1 // Copyright (c) 2012 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 14 namespace gpu { 15 16 class GLSharedResources : public testing::Test { 17 protected: 18 virtual void SetUp() { 19 GLManager::Options options; 20 #if ENABLE_DCHECK 21 // This can't be false if DCHECK is enabled because a DCHECK in 22 // gpu/command_buffer/client/share_group.h will trigger. 23 // The test below is making sure things don't break in release. 24 options.bind_generates_resource = false; 25 #else 26 options.bind_generates_resource = true; 27 #endif 28 gl1_.Initialize(options); 29 options.share_group_manager = &gl1_; 30 gl2_.Initialize(options); 31 } 32 33 virtual void TearDown() { 34 gl1_.Destroy(); 35 gl2_.Destroy(); 36 } 37 38 GLManager gl1_; 39 GLManager gl2_; 40 }; 41 42 // Test that GL creating/deleting works across context. 43 TEST_F(GLSharedResources, CreateDelete) { 44 gl1_.MakeCurrent(); 45 GLuint tex = 0; 46 glGenTextures(1, &tex); 47 gl2_.MakeCurrent(); 48 glBindTexture(GL_TEXTURE_2D, tex); 49 glDeleteTextures(1, &tex); 50 gl1_.MakeCurrent(); 51 glBindTexture(GL_TEXTURE_2D,tex); 52 GLTestHelper::CheckGLError("no errors", __LINE__); 53 gl2_.MakeCurrent(); 54 GLTestHelper::CheckGLError("no errors", __LINE__); 55 } 56 57 } // namespace gpu 58 59