ShaderTranslatorTest() {
}
- virtual ~ShaderTranslatorTest() {
- }
+ ~ShaderTranslatorTest() override {}
protected:
- virtual void SetUp() {
+ void SetUp() override {
ShBuiltInResources resources;
ShInitBuiltInResources(&resources);
resources.MaxExpressionComplexity = 32;
ShaderTranslatorInterface::kGlsl,
static_cast<ShCompileOptions>(0)));
}
- virtual void TearDown() {
+ void TearDown() override {
vertex_translator_ = NULL;
fragment_translator_ = NULL;
}
// A valid shader should be successfully translated.
std::string info_log, translated_source;
- ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map;
- ShaderTranslatorInterface::NameMap name_map;
+ AttributeMap attrib_map;
+ UniformMap uniform_map;
+ VaryingMap varying_map;
+ NameMap name_map;
EXPECT_TRUE(vertex_translator_->Translate(shader,
&info_log,
&translated_source,
EXPECT_TRUE(info_log.empty());
// Translated shader must be valid and non-empty.
ASSERT_FALSE(translated_source.empty());
- // There should be no attributes, uniforms, varyings.
+ // There should be no attributes, uniforms, and only one built-in
+ // varying: gl_Position.
EXPECT_TRUE(attrib_map.empty());
EXPECT_TRUE(uniform_map.empty());
- EXPECT_TRUE(varying_map.empty());
+ EXPECT_EQ(1u, varying_map.size());
// There should be no name mapping.
EXPECT_TRUE(name_map.empty());
}
// An invalid shader should fail.
std::string info_log, translated_source;
- ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map;
- ShaderTranslatorInterface::NameMap name_map;
+ AttributeMap attrib_map;
+ UniformMap uniform_map;
+ VaryingMap varying_map;
+ NameMap name_map;
EXPECT_FALSE(vertex_translator_->Translate(bad_shader,
&info_log,
&translated_source,
// A valid shader should be successfully translated.
std::string info_log, translated_source;
- ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map;
- ShaderTranslatorInterface::NameMap name_map;
+ AttributeMap attrib_map;
+ UniformMap uniform_map;
+ VaryingMap varying_map;
+ NameMap name_map;
EXPECT_TRUE(fragment_translator_->Translate(shader,
&info_log,
&translated_source,
const char* shader = "foo-bar";
std::string info_log, translated_source;
- ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map;
- ShaderTranslatorInterface::NameMap name_map;
+ AttributeMap attrib_map;
+ UniformMap uniform_map;
+ VaryingMap varying_map;
+ NameMap name_map;
// An invalid shader should fail.
EXPECT_FALSE(fragment_translator_->Translate(shader,
&info_log,
"}";
std::string info_log, translated_source;
- ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map;
- ShaderTranslatorInterface::NameMap name_map;
+ AttributeMap attrib_map;
+ UniformMap uniform_map;
+ VaryingMap varying_map;
+ NameMap name_map;
EXPECT_TRUE(vertex_translator_->Translate(shader,
&info_log,
&translated_source,
// There should be no uniforms.
EXPECT_TRUE(uniform_map.empty());
// There should be one attribute with following characteristics:
- // name:vPosition type:GL_FLOAT_VEC4 size:1.
+ // name:vPosition type:GL_FLOAT_VEC4 size:0.
EXPECT_EQ(1u, attrib_map.size());
- ShaderTranslator::VariableMap::const_iterator iter =
- attrib_map.find("vPosition");
+ AttributeMap::const_iterator iter = attrib_map.find("vPosition");
EXPECT_TRUE(iter != attrib_map.end());
- EXPECT_EQ(GL_FLOAT_VEC4, iter->second.type);
- EXPECT_EQ(1, iter->second.size);
+ EXPECT_EQ(static_cast<GLenum>(GL_FLOAT_VEC4), iter->second.type);
+ EXPECT_EQ(0u, iter->second.arraySize);
EXPECT_EQ("vPosition", iter->second.name);
}
"}";
std::string info_log, translated_source;
- ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map;
- ShaderTranslatorInterface::NameMap name_map;
+ AttributeMap attrib_map;
+ UniformMap uniform_map;
+ VaryingMap varying_map;
+ NameMap name_map;
EXPECT_TRUE(fragment_translator_->Translate(shader,
&info_log,
&translated_source,
// There should be two uniforms with following characteristics:
// 1. name:bar[0].foo.color[0] type:GL_FLOAT_VEC4 size:1
// 2. name:bar[1].foo.color[0] type:GL_FLOAT_VEC4 size:1
- EXPECT_EQ(2u, uniform_map.size());
- // First uniform.
- ShaderTranslator::VariableMap::const_iterator iter =
- uniform_map.find("bar[0].foo.color[0]");
+ // However, there will be only one entry "bar" in the map.
+ EXPECT_EQ(1u, uniform_map.size());
+ UniformMap::const_iterator iter = uniform_map.find("bar");
EXPECT_TRUE(iter != uniform_map.end());
- EXPECT_EQ(GL_FLOAT_VEC4, iter->second.type);
- EXPECT_EQ(1, iter->second.size);
- EXPECT_EQ("bar[0].foo.color[0]", iter->second.name);
+ // First uniform.
+ const sh::ShaderVariable* info;
+ std::string original_name;
+ EXPECT_TRUE(iter->second.findInfoByMappedName(
+ "bar[0].foo.color[0]", &info, &original_name));
+ EXPECT_EQ(static_cast<GLenum>(GL_FLOAT_VEC4), info->type);
+ EXPECT_EQ(1u, info->arraySize);
+ EXPECT_STREQ("color", info->name.c_str());
+ EXPECT_STREQ("bar[0].foo.color[0]", original_name.c_str());
// Second uniform.
- iter = uniform_map.find("bar[1].foo.color[0]");
- EXPECT_TRUE(iter != uniform_map.end());
- EXPECT_EQ(GL_FLOAT_VEC4, iter->second.type);
- EXPECT_EQ(1, iter->second.size);
- EXPECT_EQ("bar[1].foo.color[0]", iter->second.name);
+ EXPECT_TRUE(iter->second.findInfoByMappedName(
+ "bar[1].foo.color[0]", &info, &original_name));
+ EXPECT_EQ(static_cast<GLenum>(GL_FLOAT_VEC4), info->type);
+ EXPECT_EQ(1u, info->arraySize);
+ EXPECT_STREQ("color", info->name.c_str());
+ EXPECT_STREQ("bar[1].foo.color[0]", original_name.c_str());
}
#if defined(OS_MACOSX)
"}";
std::string info_log, translated_source;
- ShaderTranslatorInterface::VariableMap attrib_map, uniform_map, varying_map;
- ShaderTranslatorInterface::NameMap name_map;
+ AttributeMap attrib_map;
+ UniformMap uniform_map;
+ VaryingMap varying_map;
+ NameMap name_map;
EXPECT_TRUE(vertex_translator_->Translate(shader,
&info_log,
&translated_source,