blob: 7ffb464176dcd39e141d5a750d88b1805fac1410 [file] [log] [blame]
// Copyright 2014 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 "cc/raster/scoped_gpu_raster.h"
#include "cc/test/test_context_provider.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace cc {
namespace {
class ScopedGpuRasterTest : public testing::Test {
public:
ScopedGpuRasterTest() {}
};
// Releasing ScopedGpuRaster should restore GL_UNPACK_ALIGNMENT == 4.
TEST(ScopedGpuRasterTest, RestoresUnpackAlignment) {
scoped_refptr<TestContextProvider> provider = TestContextProvider::Create();
EXPECT_TRUE(provider->BindToCurrentThread());
gpu::gles2::GLES2Interface* gl = provider->ContextGL();
GLint unpack_alignment = 0;
gl->GetIntegerv(GL_UNPACK_ALIGNMENT, &unpack_alignment);
EXPECT_EQ(4, unpack_alignment);
{
scoped_ptr<ScopedGpuRaster> scoped_gpu_raster(
new ScopedGpuRaster(provider.get()));
gl->PixelStorei(GL_UNPACK_ALIGNMENT, 1);
gl->GetIntegerv(GL_UNPACK_ALIGNMENT, &unpack_alignment);
EXPECT_EQ(1, unpack_alignment);
}
gl->GetIntegerv(GL_UNPACK_ALIGNMENT, &unpack_alignment);
EXPECT_EQ(4, unpack_alignment);
}
} // namespace
} // namespace cc