/*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
float yBearing; ///< The distance from the baseline to the topmost border of the glyph
float advance; ///< The distance to move the cursor for this glyph
float scaleFactor; ///< The scaling applied (fixed-size fonts only)
+ bool isItalicRequired; ///< Whether the italic style is required.
+ bool isBoldRequired; ///< Whether the bold style is required.
};
bool IsEqualGlyph ( const GlyphInfoData& glyphData, const GlyphInfo& glyph )
{
return false;
}
+ if( glyphData.isItalicRequired != glyph.isItalicRequired )
+ {
+ return false;
+ }
+ if( glyphData.isBoldRequired != glyph.isBoldRequired )
+ {
+ return false;
+ }
return true;
}
Length* charactersPerGlyph; ///< The characters per glyph.
uint32_t expectedNumberOfNewParagraphGlyphs; ///< The expected number of glyphs.
GlyphIndex* newParagraphGlyphs; ///< Indices to the new paragraphs glyphs.
+ Vector<FontDescriptionRun> fontDescriptions; ///< Fonts which is used for text.
};
bool ShapeInfoTest( const ShapeInfoData& data )
const LayoutOptions options;
CreateTextModel( data.text,
textArea,
- fontDescriptions,
+ data.fontDescriptions,
options,
layoutSize,
logicalModel,
visualModel,
- metrics );
+ metrics,
+ false );
// 2) Clear the model.
struct GlyphInfoData glyphs04[] =
{
- { 2u, 160u, 0.f, 0.f, 0.f, 0.f, 5.f, 0.f },
- { 2u, 123u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f },
- { 2u, 153u, 0.f, 0.f, 0.f, 0.f, 5.f, 0.f },
- { 2u, 160u, 0.f, 0.f, 0.f, 0.f, 5.f, 0.f },
- { 2u, 150u, 0.f, 0.f, 0.f, 0.f, 14.f, 0.f },
- { 2u, 153u, 0.f, 0.f, 0.f, 0.f, 5.f, 0.f },
- { 2u, 160u, 0.f, 0.f, 0.f, 0.f, 5.f, 0.f },
- { 2u, 151u, 0.f, 0.f, 0.f, 0.f, 12.f, 0.f },
- { 2u, 153u, 0.f, 0.f, 0.f, 0.f, 5.f, 0.f },
- { 2u, 160u, 0.f, 0.f, 0.f, 0.f, 5.f, 0.f },
- { 2u, 147u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f },
- { 2u, 153u, 0.f, 0.f, 0.f, 0.f, 5.f, 0.f },
+ { 2u, 1733u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f },
+ { 2u, 1693u, 0.f, 0.f, 0.f, 0.f, 13.f, 0.f },
+ { 2u, 1725u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f },
+ { 2u, 1733u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f },
+ { 2u, 1721u, 0.f, 0.f, 0.f, 0.f, 20.f, 0.f },
+ { 2u, 1725u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f },
+ { 2u, 1733u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f },
+ { 2u, 1722u, 0.f, 0.f, 0.f, 0.f, 18.f, 0.f },
+ { 2u, 1725u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f },
+ { 2u, 1733u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f },
+ { 2u, 1718u, 0.f, 0.f, 0.f, 0.f, 14.f, 0.f },
+ { 2u, 1725u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f },
};
CharacterIndex characterIndices04[] = { 0u, 0u, 0u, 2u, 2u, 2u, 4u, 4u, 4u, 6u, 6u, 6u };
{ 1u, 3u, 0.f, 0.f, 0.f, 0.f, 5.f, 0.f },
{ 1u, 71u, 0.f, 0.f, 0.f, 0.f, 10.f, 0.f },
{ 1u, 72u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f },
- { 1u, 5034u, 0.f, 0.f, 0.f, 0.f, 10.f, 0.f },
+ { 1u, 5039u, 0.f, 0.f, 0.f, 0.f, 10.f, 0.f },
{ 1u, 81u, 0.f, 0.f, 0.f, 0.f, 10.f, 0.f },
{ 1u, 76u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f },
{ 1u, 72u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f },
tet_result(TET_PASS);
END_TEST;
}
+
+int UtcDaliTextSoftwareStyling(void)
+{
+ tet_infoline(" UtcDaliTextSoftwareStyling");
+
+ struct GlyphInfoData glyphs01[] =
+ {
+ { 2u, 21154u, 0.f, 0.f, 0.f, 0.f, 16.f, 0.f, true, true },
+ { 2u, 12298u, 0.f, 0.f, 0.f, 0.f, 16.f, 0.f, true, true },
+ { 2u, 17828u, 0.f, 0.f, 0.f, 0.f, 16.f, 0.f, true, true },
+ };
+ struct GlyphInfoData glyphs02[] =
+ {
+ { 2u, 21154u, 0.f, 0.f, 0.f, 0.f, 16.f, 0.f, false, false },
+ { 2u, 12298u, 0.f, 0.f, 0.f, 0.f, 16.f, 0.f, false, true },
+ { 2u, 17828u, 0.f, 0.f, 0.f, 0.f, 16.f, 0.f, true, false },
+ };
+
+ CharacterIndex characterIndices[] = { 0u, 1u, 2u };
+ Length charactersPerGlyph[] = { 1u, 1u, 1u };
+
+ Vector<FontDescriptionRun> fontDescriptions01;
+ Vector<FontDescriptionRun> fontDescriptions02;
+
+ FontDescriptionRun fontDescriptionRun01 =
+ {
+ {
+ 0u,
+ 3u
+ },
+ NULL,
+ 0u,
+ TextAbstraction::FontWeight::BOLD,
+ TextAbstraction::FontWidth::NONE,
+ TextAbstraction::FontSlant::ITALIC,
+ TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+ false,
+ true,
+ false,
+ true,
+ false
+ };
+ fontDescriptions01.PushBack(fontDescriptionRun01);
+
+ FontDescriptionRun fontDescriptionRun02 =
+ {
+ {
+ 0u,
+ 1u
+ },
+ NULL,
+ 0u,
+ TextAbstraction::FontWeight::NONE,
+ TextAbstraction::FontWidth::NONE,
+ TextAbstraction::FontSlant::NONE,
+ TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+ false,
+ false,
+ false,
+ false,
+ false
+ };
+ FontDescriptionRun fontDescriptionRun03 =
+ {
+ {
+ 1u,
+ 1u
+ },
+ NULL,
+ 0u,
+ TextAbstraction::FontWeight::BOLD,
+ TextAbstraction::FontWidth::NONE,
+ TextAbstraction::FontSlant::NONE,
+ TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+ false,
+ true,
+ false,
+ false,
+ false
+ };
+ FontDescriptionRun fontDescriptionRun04 =
+ {
+ {
+ 2u,
+ 1u
+ },
+ NULL,
+ 0u,
+ TextAbstraction::FontWeight::NONE,
+ TextAbstraction::FontWidth::NONE,
+ TextAbstraction::FontSlant::ITALIC,
+ TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+ false,
+ false,
+ false,
+ true,
+ false
+ };
+
+ fontDescriptions02.PushBack(fontDescriptionRun02);
+ fontDescriptions02.PushBack(fontDescriptionRun03);
+ fontDescriptions02.PushBack(fontDescriptionRun04);
+
+
+ struct ShapeInfoData data[] =
+ {
+ {
+ "Chiness script. Characters have same font description",
+ "未取得",
+ 0u,
+ 3u,
+ 3u,
+ glyphs01,
+ characterIndices,
+ charactersPerGlyph,
+ 0u,
+ NULL,
+ fontDescriptions01
+ },
+ {
+ "Chiness script. Each character has different font description.",
+ "未取得",
+ 0u,
+ 3u,
+ 3u,
+ glyphs02,
+ characterIndices,
+ charactersPerGlyph,
+ 0u,
+ NULL,
+ fontDescriptions02
+ }
+ };
+
+ const unsigned int numberOfTests = 2u;
+
+ for( unsigned int index = 0u; index < numberOfTests; ++index )
+ {
+ ToolkitTestApplication application;
+ if( !ShapeInfoTest( data[index] ) )
+ {
+ tet_result(TET_FAIL);
+ }
+ }
+
+ tet_result(TET_PASS);
+ END_TEST;
+}