bool AbstractFont::openSingleData(const Containers::ArrayReference<const unsigned char> data, const Float size) { CORRADE_ASSERT(features() & Feature::OpenData, "Text::AbstractFont::openSingleData(): feature not supported", false); CORRADE_ASSERT(!(features() & Feature::MultiFile), "Text::AbstractFont::openSingleData(): the format is not single-file", false); close(); std::tie(_size, _lineHeight) = doOpenSingleData(data, size); CORRADE_INTERNAL_ASSERT(isOpened() || (_size == 0.0f && _lineHeight == 0.0f)); return isOpened(); }
std::pair<Float, Float> AbstractFont::doOpenFile(const std::string& filename, const Float size) { CORRADE_ASSERT(features() & Feature::OpenData && !(features() & Feature::MultiFile), "Text::AbstractFont::openFile(): not implemented", {}); /* Open file */ if(!Utility::Directory::fileExists(filename)) { Error() << "Trade::AbstractFont::openFile(): cannot open file" << filename; return {}; } return doOpenSingleData(Utility::Directory::read(filename), size); }
bool AbstractFont::openSingleData(const Containers::ArrayView<const char> data, const Float size) { CORRADE_ASSERT(features() & Feature::OpenData, "Text::AbstractFont::openSingleData(): feature not supported", false); CORRADE_ASSERT(!(features() & Feature::MultiFile), "Text::AbstractFont::openSingleData(): the format is not single-file", false); close(); const Metrics metrics = doOpenSingleData(data, size); _size = metrics.size; _ascent = metrics.ascent; _descent = metrics.descent; _lineHeight = metrics.lineHeight; CORRADE_INTERNAL_ASSERT(isOpened() || (!_size && !_ascent && !_descent && !_lineHeight)); return isOpened(); }