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