// 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 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 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