MCPcopy Create free account
hub / github.com/axmolengine/axmol / saveAs

Method saveAs

extensions/SDFGen/src/SDFGen/SDFGen.cpp:83–154  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

81 bool save() { return this->saveAs(_params->fontAsset); }
82
83 bool saveAs(std::string_view path)
84 {
85 std::string storePath;
86 auto fu = FileUtils::getInstance();
87 if (fu->isAbsolutePath(path))
88 {
89 storePath = path;
90 }
91 else
92 {
93 storePath = fu->getDefaultResourceRootPath();
94 storePath += path;
95 }
96
97 auto start = yasio::highp_clock();
98
99 JsonWriter<> xasset;
100
101 xasset.writeStartObject();
102
103 xasset.writeString("version"sv, AX_VERSION_STR_FULL);
104 xasset.writeString("type"sv, "fontatlas"sv);
105 xasset.writeString("sourceFont"sv, _params->sourceFont);
106 xasset.writeString("atlasName"sv, _atlasName);
107 xasset.writeNumber("spread"sv, 6);
108 xasset.writeNumber("faceSize"sv, _params->faceSize);
109
110 xasset.writeNumberArray("atlasDim"sv, _params->atlasDim);
111
112 xasset.writeStartObject("letters"sv);
113 std::string charCode;
114 for (auto& letterInfo : getLetterDefinitions())
115 {
116 charCode.clear();
117 fmt::format_to(charCode, "{}", (int32_t)letterInfo.first);
118
119 xasset.writeStartObject(charCode);
120 xasset.writeNumber("U", letterInfo.second.U);
121 xasset.writeNumber("V", letterInfo.second.V);
122 xasset.writeNumber("width", letterInfo.second.width);
123 xasset.writeNumber("height", letterInfo.second.height);
124 xasset.writeNumber("offsetX", letterInfo.second.offsetX);
125 xasset.writeNumber("offsetY", letterInfo.second.offsetY);
126 xasset.writeNumber("page", letterInfo.second.textureID);
127 xasset.writeNumber("advance", letterInfo.second.xAdvance);
128 xasset.writeEndObject();
129 }
130 xasset.writeEndObject();
131
132 xasset.writeStartArray("pages");
133 for (auto& data : _pageDatas)
134 {
135 auto compData = ZipUtils::compressGZ(std::span{data});
136 auto pixels = utils::base64Encode(std::span{compData});
137 xasset.writeStringValue(pixels);
138 }
139 xasset.writeEndArray();
140

Callers 1

saveMethod · 0.95

Calls 15

getInstanceFunction · 0.85
highp_clockFunction · 0.85
writeStartObjectMethod · 0.80
writeStringMethod · 0.80
writeNumberMethod · 0.80
writeNumberArrayMethod · 0.80
writeEndObjectMethod · 0.80
writeStartArrayMethod · 0.80
writeStringValueMethod · 0.80
writeEndArrayMethod · 0.80
writeStringToFileMethod · 0.80
format_toFunction · 0.50

Tested by

no test coverage detected