Alternatively,thecontentsofthisfilemaybeusedunderthetermsofthe MozillaPublicLicense(http://mozilla.org/MPL) or the GNU General Public License,aspublishedbytheFreeSoftwareFoundation,eitherversion2 oftheLicenseor(atyouroption)anylaterversion.
*/ #include"graphite2/Font.h" #include"inc/Face.h" #include"inc/FileFace.h" #include"inc/GlyphCache.h" #include"inc/CmapCache.h" #include"inc/Silf.h" #include"inc/json.h"
inline
uint32 zeropad(const uint32 x)
{ if (x == 0x20202020) return0; if ((x & 0x00FFFFFF) == 0x00202020) return x & 0xFF000000; if ((x & 0x0000FFFF) == 0x00002020) return x & 0xFFFF0000; if ((x & 0x000000FF) == 0x00000020) return x & 0xFFFFFF00; return x;
}
}
extern"C" {
gr_face* gr_make_face_with_ops(constvoid* appFaceHandle/*non-NULL*/, const gr_face_ops *ops, unsigned int faceOptions) //the appFaceHandle must stay alive all the time when the gr_face is alive. When finished with the gr_face, call destroy_face
{ if (ops == 0) return0;
Face *res = new Face(appFaceHandle, *ops); if (res && load_face(*res, faceOptions)) returnstatic_cast<gr_face *>(res);
unsignedshort gr_face_n_fref(const gr_face* pFace)
{
assert(pFace); int res = 0; for (int i = 0; i < pFace->numFeatures(); ++i) if (!(pFace->feature(i)->getFlags() & FeatureRef::HIDDEN))
++res; return res;
}
const gr_feature_ref* gr_face_fref(const gr_face* pFace, gr_uint16 i) //When finished with the FeatureRef, call destroy_FeatureRef
{
assert(pFace); int count = 0; for (int j = 0; j < pFace->numFeatures(); ++j)
{ const FeatureRef* pRef = pFace->feature(j); if (!(pRef->getFlags() & FeatureRef::HIDDEN)) if (count++ == i) returnstatic_cast<const gr_feature_ref*>(pRef);
} return0;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.