Home | History | Annotate | Download | only in tests
      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