@@ -36,6 +36,14 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3636
3737namespace {
3838
39+ struct u_float_A : GLUniform1f { u_float_A(GLShader* s) : GLUniform1f(s, " u_float_A" ) {} };
40+ struct u_float_B : GLUniform1f { u_float_B(GLShader* s) : GLUniform1f(s, " u_float_B" ) {} };
41+ struct u_vec2_A : GLUniform2f { u_vec2_A(GLShader* s) : GLUniform2f(s, " u_vec2_A" ) {} };
42+ struct u_vec3_A : GLUniform3f { u_vec3_A(GLShader* s) : GLUniform3f(s, " u_vec3_A" ) {} };
43+ struct u_vec3_B : GLUniform3f { u_vec3_B(GLShader* s) : GLUniform3f(s, " u_vec3_B" ) {} };
44+ struct u_mat4_A : GLUniformMatrix4f { u_mat4_A(GLShader* s) : GLUniformMatrix4f(s, " u_mat4_A" ) {} };
45+ struct u_vec4Array6_A : GLUniform4fv { u_vec4Array6_A(GLShader* s) : GLUniform4fv( s, " u_Vec4Array6_A" , 6 ) {} };
46+
3947class MaterialUniformPackingTestShaderBase : public GLShader
4048{
4149public:
@@ -59,83 +67,83 @@ GLUniform* Get(ShaderT& shader)
5967TEST (MaterialUniformPackingTest, OneMatrix)
6068{
6169 class Shader1 : public MaterialUniformPackingTestShaderBase ,
62- public u_ModelViewMatrix // mat4
70+ public u_mat4_A
6371 {
6472 public:
65- Shader1 () : u_ModelViewMatrix (this ) {}
73+ Shader1 () : u_mat4_A (this ) {}
6674 };
6775
6876 Shader1 shader1;
6977 std::vector<GLUniform*> uniforms = shader1.GetUniforms ();
7078 EXPECT_EQ (shader1.GetSTD140Size (), 16u );
7179 ASSERT_EQ (uniforms.size (), 1 );
72- EXPECT_EQ (uniforms[0 ], Get<u_ModelViewMatrix >(shader1));
80+ EXPECT_EQ (uniforms[0 ], Get<u_mat4_A >(shader1));
7381 EXPECT_EQ (uniforms[0 ]->_std430Size , 16u );
7482}
7583
7684TEST (MaterialUniformPackingTest, TwoFloats)
7785{
7886 class Shader1 : public MaterialUniformPackingTestShaderBase ,
79- public u_DeformMagnitude, // float
80- public u_InverseGamma // float
87+ public u_float_A,
88+ public u_float_B
8189 {
8290 public:
83- Shader1 () : u_DeformMagnitude (this ), u_InverseGamma (this ) {}
91+ Shader1 () : u_float_A (this ), u_float_B (this ) {}
8492 };
8593
8694 Shader1 shader1;
8795 std::vector<GLUniform*> uniforms = shader1.GetUniforms ();
8896 EXPECT_EQ (shader1.GetSTD140Size (), 4u );
8997 ASSERT_EQ (uniforms.size (), 2 );
90- EXPECT_EQ (uniforms[0 ], Get<u_DeformMagnitude >(shader1));
98+ EXPECT_EQ (uniforms[0 ], Get<u_float_A >(shader1));
9199 EXPECT_EQ (uniforms[0 ]->_std430Size , 1u );
92- EXPECT_EQ (uniforms[1 ], Get<u_InverseGamma >(shader1));
100+ EXPECT_EQ (uniforms[1 ], Get<u_float_B >(shader1));
93101 EXPECT_EQ (uniforms[1 ]->_std430Size , 3u );
94102}
95103
96104TEST (MaterialUniformPackingTest, Vec3Handling)
97105{
98106 class Shader1 : public MaterialUniformPackingTestShaderBase ,
99- public u_DeformMagnitude, // float
100- public u_SpecularExponent, // vec2
101- public u_FogColor, // vec3
102- public u_blurVec // vec3
107+ public u_float_A,
108+ public u_vec2_A,
109+ public u_vec3_A,
110+ public u_vec3_B
103111 {
104112 public:
105- Shader1 () : u_DeformMagnitude (this ),
106- u_SpecularExponent (this ),
107- u_FogColor (this ),
108- u_blurVec (this ) {}
113+ Shader1 () : u_float_A (this ),
114+ u_vec2_A (this ),
115+ u_vec3_A (this ),
116+ u_vec3_B (this ) {}
109117 };
110118
111119 Shader1 shader1;
112120 std::vector<GLUniform*> uniforms = shader1.GetUniforms();
113121 EXPECT_EQ (shader1.GetSTD140Size(), 12u);
114122 ASSERT_EQ (uniforms.size(), 4);
115- EXPECT_EQ (uniforms[0 ], Get<u_FogColor >(shader1));
123+ EXPECT_EQ (uniforms[0 ], Get<u_vec3_A >(shader1));
116124 EXPECT_EQ (uniforms[0 ]->_std430Size, 3u );
117- EXPECT_EQ (uniforms[1 ], Get<u_DeformMagnitude >(shader1));
125+ EXPECT_EQ (uniforms[1 ], Get<u_float_A >(shader1));
118126 EXPECT_EQ (uniforms[1 ]->_std430Size, 1u );
119- EXPECT_EQ (uniforms[2 ], Get<u_blurVec >(shader1));
127+ EXPECT_EQ (uniforms[2 ], Get<u_vec3_B >(shader1));
120128 EXPECT_EQ (uniforms[2 ]->_std430Size, 4u );
121- EXPECT_EQ (uniforms[3 ], Get<u_SpecularExponent >(shader1));
129+ EXPECT_EQ (uniforms[3 ], Get<u_vec2_A >(shader1));
122130 EXPECT_EQ (uniforms[3 ]->_std430Size, 4u );
123131}
124132
125133TEST (MaterialUniformPackingTest, Array)
126134{
127135 class Shader1 : public MaterialUniformPackingTestShaderBase ,
128- public u_Frustum // vec4[6]
136+ public u_vec4Array6_A
129137 {
130138 public:
131- Shader1 () : u_Frustum (this ) {}
139+ Shader1 () : u_vec4Array6_A (this ) {}
132140 };
133141
134142 Shader1 shader1;
135143 std::vector<GLUniform*> uniforms = shader1.GetUniforms ();
136144 EXPECT_EQ (shader1.GetSTD140Size (), 24u );
137145 ASSERT_EQ (uniforms.size (), 1 );
138- EXPECT_EQ (uniforms[0 ], Get<u_Frustum >(shader1));
146+ EXPECT_EQ (uniforms[0 ], Get<u_vec4Array6_A >(shader1));
139147 EXPECT_EQ (uniforms[0 ]->_std430Size , 4u );
140148}
141149
0 commit comments