Font selector
This commit is contained in:
@@ -174,6 +174,65 @@ void SupportsTextParametersWithDeclaredFont()
|
||||
Expect(result.reason.empty(), "supported text parameters should not report a rejection reason");
|
||||
}
|
||||
|
||||
void SupportsTextParametersWithFontSelector()
|
||||
{
|
||||
ShaderPackage shaderPackage = MakeSinglePassPackage();
|
||||
ShaderFontAsset roboto;
|
||||
roboto.id = "roboto";
|
||||
shaderPackage.fontAssets.push_back(roboto);
|
||||
ShaderFontAsset mono;
|
||||
mono.id = "mono";
|
||||
shaderPackage.fontAssets.push_back(mono);
|
||||
|
||||
ShaderParameterDefinition fontSelector;
|
||||
fontSelector.id = "font";
|
||||
fontSelector.type = ShaderParameterType::Enum;
|
||||
fontSelector.defaultEnumValue = "roboto";
|
||||
fontSelector.enumOptions = { { "roboto", "Roboto" }, { "mono", "Mono" } };
|
||||
shaderPackage.parameters.push_back(fontSelector);
|
||||
|
||||
ShaderParameterDefinition parameter;
|
||||
parameter.id = "caption";
|
||||
parameter.type = ShaderParameterType::Text;
|
||||
parameter.fontId = "roboto";
|
||||
parameter.fontParameterId = "font";
|
||||
shaderPackage.parameters.push_back(parameter);
|
||||
|
||||
const RenderCadenceCompositor::ShaderSupportResult result =
|
||||
RenderCadenceCompositor::CheckStatelessSinglePassShaderSupport(shaderPackage);
|
||||
|
||||
Expect(result.supported, "text parameters with font selector enum should be supported");
|
||||
Expect(result.reason.empty(), "supported font selector text parameters should not report a rejection reason");
|
||||
}
|
||||
|
||||
void RejectsTextParametersWithFontSelectorUnknownOption()
|
||||
{
|
||||
ShaderPackage shaderPackage = MakeSinglePassPackage();
|
||||
ShaderFontAsset roboto;
|
||||
roboto.id = "roboto";
|
||||
shaderPackage.fontAssets.push_back(roboto);
|
||||
|
||||
ShaderParameterDefinition fontSelector;
|
||||
fontSelector.id = "font";
|
||||
fontSelector.type = ShaderParameterType::Enum;
|
||||
fontSelector.defaultEnumValue = "roboto";
|
||||
fontSelector.enumOptions = { { "roboto", "Roboto" }, { "missing", "Missing" } };
|
||||
shaderPackage.parameters.push_back(fontSelector);
|
||||
|
||||
ShaderParameterDefinition parameter;
|
||||
parameter.id = "caption";
|
||||
parameter.type = ShaderParameterType::Text;
|
||||
parameter.fontId = "roboto";
|
||||
parameter.fontParameterId = "font";
|
||||
shaderPackage.parameters.push_back(parameter);
|
||||
|
||||
const RenderCadenceCompositor::ShaderSupportResult result =
|
||||
RenderCadenceCompositor::CheckStatelessSinglePassShaderSupport(shaderPackage);
|
||||
|
||||
Expect(!result.supported, "font selector enum options must reference declared font assets");
|
||||
Expect(result.reason.find("unknown font asset") != std::string::npos, "font selector rejection mentions unknown font asset");
|
||||
}
|
||||
|
||||
void BuildsDeclaredFontAtlasesDuringCatalogLoad()
|
||||
{
|
||||
std::string msdfReason;
|
||||
@@ -217,6 +276,8 @@ int main()
|
||||
RejectsTextureAssets();
|
||||
RejectsTextParametersWithoutDeclaredFont();
|
||||
SupportsTextParametersWithDeclaredFont();
|
||||
SupportsTextParametersWithFontSelector();
|
||||
RejectsTextParametersWithFontSelectorUnknownOption();
|
||||
BuildsDeclaredFontAtlasesDuringCatalogLoad();
|
||||
|
||||
if (gFailures != 0)
|
||||
|
||||
Reference in New Issue
Block a user