diff --git a/skin_generator/main.cpp b/skin_generator/main.cpp index 4b1e182295..6530c821fb 100644 --- a/skin_generator/main.cpp +++ b/skin_generator/main.cpp @@ -13,9 +13,8 @@ DEFINE_string(symbolsFile, "../../data/results.unicode", "file with 2bytes symbo DEFINE_string(symbolsDir, "../../data/styles/symbols", "directory with svg symbol files"); DEFINE_int32(symbolWidth, 24, "width of the rendered symbol"); DEFINE_int32(symbolHeight, 24, "height of the rendered symbol"); -DEFINE_double(symbolScale, 1, "scale factor of the symbol"); -DEFINE_int32(fixedGlyphSize, 16, "height of the fixed font"); DEFINE_string(skinName, "../../data/basic", "prefix for the skin and skinImage file name"); +DEFINE_string(skinSuffix, "ldpi", "suffix for skinName.skn and symbols.png"); int main(int argc, char *argv[]) { @@ -27,13 +26,13 @@ int main(int argc, char *argv[]) std::vector symbolSizes; symbolSizes.push_back(QSize(FLAGS_symbolWidth, FLAGS_symbolHeight)); - std::vector symbolScales; - symbolScales.push_back(FLAGS_symbolScale); + std::vector suffixes; + suffixes.push_back(FLAGS_skinSuffix); - gen.processSymbols(FLAGS_symbolsDir, FLAGS_skinName, symbolSizes, symbolScales); + gen.processSymbols(FLAGS_symbolsDir, FLAGS_skinName, symbolSizes, suffixes); gen.renderPages(); - gen.writeToFile(FLAGS_skinName); + gen.writeToFile(FLAGS_skinName + "_" + FLAGS_skinSuffix); return 0; } diff --git a/skin_generator/skin_generator.cpp b/skin_generator/skin_generator.cpp index 56ab063c24..67753a6d02 100644 --- a/skin_generator/skin_generator.cpp +++ b/skin_generator/skin_generator.cpp @@ -205,7 +205,10 @@ namespace tools } }; - void SkinGenerator::processSymbols(string const & svgDataDir, string const & skinName, std::vector const & symbolSizes, std::vector const & symbolScales) + void SkinGenerator::processSymbols(string const & svgDataDir, + string const & skinName, + vector const & symbolSizes, + vector const & suffixes) { for (int i = 0; i < symbolSizes.size(); ++i) { @@ -216,10 +219,9 @@ namespace tools m_pages.push_back(SkinPageInfo()); SkinPageInfo & page = m_pages.back(); - double symbolScale = symbolScales[i]; QSize symbolSize = symbolSizes[i]; - page.m_fileName = skinName.substr(0, skinName.find_last_of("/") + 1) + "symbols_" + QString("%1").arg(symbolSize.width()).toLocal8Bit().constData(); + page.m_fileName = skinName.substr(0, skinName.find_last_of("/") + 1) + "symbols_" + suffixes[i]; for (int i = 0; i < fileNames.size(); ++i) { @@ -232,7 +234,9 @@ namespace tools QRect viewBox = m_svgRenderer.viewBox(); QSize defaultSize = m_svgRenderer.defaultSize(); - QSize size = defaultSize * symbolScale; + QSize size = defaultSize * (symbolSize.width() / 24.0); + + /// fitting symbol into symbolSize, saving aspect ratio if (size.width() > symbolSize.width()) { @@ -510,6 +514,8 @@ namespace tools QFile file(QString((skinName + ".skn").c_str())); + LOG(LINFO, ("writing skin into ", skinName + ".skn")); + if (!file.open(QIODevice::ReadWrite)) throw std::exception(); QTextStream ts(&file); diff --git a/skin_generator/skin_generator.hpp b/skin_generator/skin_generator.hpp index 54e953bb2d..c0cec52a6c 100644 --- a/skin_generator/skin_generator.hpp +++ b/skin_generator/skin_generator.hpp @@ -94,7 +94,10 @@ namespace tools SkinGenerator(); void processFont(string const & fileName, string const & skinName, vector const & fontSizes, int symbolScale); - void processSymbols(string const & symbolsDir, string const & skinName, std::vector const & symbolSizes, std::vector const & symbolScales); + void processSymbols(string const & symbolsDir, + string const & skinName, + vector const & symbolSizes, + vector const & suffix); void renderPages(); bool writeToFile(string const & skinName); }; diff --git a/tools/android/update_assets.sh b/tools/android/update_assets.sh index c6091b3f92..cf3432e37c 100755 --- a/tools/android/update_assets.sh +++ b/tools/android/update_assets.sh @@ -9,9 +9,9 @@ rm $DST/* files=(01_dejavusans.ttf 02_wqy-microhei.ttf 03_jomolhari-id-a3d.ttf 04_padauk.ttf \ 05_khmeros.ttf 06_code2000.ttf World.mwm WorldCoasts.mwm about-travelguide-iphone.html \ - basic.skn basic_highres.skn categories.txt classificator.txt types.txt countries.txt \ + basic_ldpi.skn basic_mdpi.skn basic_hdpi.skn categories.txt classificator.txt types.txt countries.txt \ drawing_rules.bin fonts_blacklist.txt fonts_whitelist.txt languages.txt \ - maps.update symbols_24.png symbols_48.png unicode_blocks.txt visibility.txt \ + maps.update symbols_ldpi.png symbols_mdpi.png symbols_hdpi.png unicode_blocks.txt visibility.txt \ drules_proto.txt) for item in ${files[*]} diff --git a/tools/unix/generate_symbols.sh b/tools/unix/generate_symbols.sh index 067ecd9f56..02fa872beb 100755 --- a/tools/unix/generate_symbols.sh +++ b/tools/unix/generate_symbols.sh @@ -6,9 +6,14 @@ DATA_PATH="$MY_PATH/../../data" "$BINARY_PATH" --symbolWidth 24 --symbolHeight 24 \ --symbolsDir "$DATA_PATH/styles/symbols" \ - --symbolScale 1 --skinName "$DATA_PATH/basic" + --skinName "$DATA_PATH/basic" --skinSuffix="ldpi" +"$BINARY_PATH" --symbolWidth 36 --symbolHeight 36 \ + --symbolsDir "$DATA_PATH/styles/symbols" \ + --skinName "$DATA_PATH/basic" --skinSuffix="mdpi" "$BINARY_PATH" --symbolWidth 48 --symbolHeight 48 \ --symbolsDir "$DATA_PATH/styles/symbols" \ - --symbolScale 2 --skinName "$DATA_PATH/basic_highres" + --skinName "$DATA_PATH/basic" --skinSuffix="hdpi" + +