OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2011 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 "gpu/command_buffer/common/gles2_cmd_utils.h" |
| 6 |
| 7 #include <GLES2/gl2.h> |
| 8 #include <GLES2/gl2ext.h> |
| 9 #include <GLES2/gles2_command_buffer.h> |
| 10 |
| 11 #include "testing/gtest/include/gtest/gtest.h" |
| 12 |
| 13 namespace gpu { |
| 14 namespace gles2 { |
| 15 |
| 16 class GLES2UtilTest : public testing:: Test { |
| 17 public: |
| 18 GLES2UtilTest() |
| 19 : util_(0) { |
| 20 } |
| 21 |
| 22 protected: |
| 23 GLES2Util util_; |
| 24 }; |
| 25 |
| 26 TEST_F(GLES2UtilTest, ComputeImageDataSizeFormats) { |
| 27 const int kWidth = 16; |
| 28 const int kHeight = 12; |
| 29 uint32 size; |
| 30 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( |
| 31 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 1, &size)); |
| 32 EXPECT_EQ(kWidth * kHeight * 3, size); |
| 33 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( |
| 34 kWidth, kHeight, GL_RGBA, GL_UNSIGNED_BYTE, 1, &size)); |
| 35 EXPECT_EQ(kWidth * kHeight * 4, size); |
| 36 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( |
| 37 kWidth, kHeight, GL_LUMINANCE, GL_UNSIGNED_BYTE, 1, &size)); |
| 38 EXPECT_EQ(kWidth * kHeight * 1, size); |
| 39 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( |
| 40 kWidth, kHeight, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, 1, &size)); |
| 41 EXPECT_EQ(kWidth * kHeight * 2, size); |
| 42 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( |
| 43 kWidth, kHeight, GL_BGRA_EXT, GL_UNSIGNED_BYTE, 1, &size)); |
| 44 EXPECT_EQ(kWidth * kHeight * 4, size); |
| 45 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( |
| 46 kWidth, kHeight, GL_ALPHA, GL_UNSIGNED_BYTE, 1, &size)); |
| 47 EXPECT_EQ(kWidth * kHeight * 1, size); |
| 48 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( |
| 49 kWidth, kHeight, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, 1, &size)); |
| 50 EXPECT_EQ(kWidth * kHeight * 2, size); |
| 51 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( |
| 52 kWidth, kHeight, GL_DEPTH_STENCIL_OES, GL_UNSIGNED_INT_24_8_OES, 1, |
| 53 &size)); |
| 54 EXPECT_EQ(kWidth * kHeight * 4, size); |
| 55 } |
| 56 |
| 57 TEST_F(GLES2UtilTest, ComputeImageDataSizeTypes) { |
| 58 const int kWidth = 16; |
| 59 const int kHeight = 12; |
| 60 uint32 size; |
| 61 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( |
| 62 kWidth, kHeight, GL_RGBA, GL_UNSIGNED_BYTE, 1, &size)); |
| 63 EXPECT_EQ(kWidth * kHeight * 4, size); |
| 64 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( |
| 65 kWidth, kHeight, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, 1, &size)); |
| 66 EXPECT_EQ(kWidth * kHeight * 2, size); |
| 67 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( |
| 68 kWidth, kHeight, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1, 1, &size)); |
| 69 EXPECT_EQ(kWidth * kHeight * 2, size); |
| 70 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( |
| 71 kWidth, kHeight, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, 1, &size)); |
| 72 EXPECT_EQ(kWidth * kHeight * 2, size); |
| 73 } |
| 74 |
| 75 TEST_F(GLES2UtilTest, ComputeImageDataSizeUnpackAlignment) { |
| 76 const int kWidth = 19; |
| 77 const int kHeight = 12; |
| 78 uint32 size; |
| 79 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( |
| 80 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 1, &size)); |
| 81 EXPECT_EQ(kWidth * kHeight * 3, size); |
| 82 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( |
| 83 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 2, &size)); |
| 84 EXPECT_EQ((kWidth * 3 + 1) * (kHeight - 1) + |
| 85 kWidth * 3, size); |
| 86 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( |
| 87 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 4, &size)); |
| 88 EXPECT_EQ((kWidth * 3 + 3) * (kHeight - 1) + |
| 89 kWidth * 3, size); |
| 90 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( |
| 91 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 8, &size)); |
| 92 EXPECT_EQ((kWidth * 3 + 7) * (kHeight - 1) + |
| 93 kWidth * 3, size); |
| 94 } |
| 95 |
| 96 } // namespace gles2 |
| 97 } // namespace gpu |
| 98 |
OLD | NEW |