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