Esempio n. 1
0
bool Cocos2dExporter::Export(QByteArray& out) {
    QString res = "info ";
    res += QString("face=\"") + fontConfig()->family() +  QString("\" ");
    res += QString("size=") + QString().number(fontConfig()->size()) + QString(" bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=2,2\n");
    res += QString("common lineHeight=") + QString().number(metrics().height) + QString(" base=29 scaleW=") + QString().number(texWidth()) + QString(" scaleH=") + QString().number(texWidth()) + QString(" pages=1 packed=0\n");
    res += QString("page id=0 file=\"") + texFilename() + QString("\"\n");
    res += QString("chars count=") + QString().number(symbols().size()) + QString("\n");

    foreach(const Symbol& c , symbols())
    {
        res += QString("char id=") + QString().number(c.id) + QString(" x=") + QString().number(c.placeX) + QString(" y=") + QString().number(c.placeY);
        res += QString(" width=") + QString().number(c.placeW) + QString(" height=") + QString().number(c.placeH);
        res += QString(" xoffset=") + QString().number(c.offsetX) + QString(" yoffset=") + QString().number(fontConfig()->size() - c.offsetY);
        res += QString(" xadvance=") + QString().number(c.advance) + QString(" page=0 chnl=0 ");

        if(c.id==32)
        {
            res += QString("letter=\"space\"");
        }
        else
        {
            res += QString("letter=\"" + QString().append(c.id) + "\"");
        }

        res += QString("\n");
    }
bool SparrowExporter::Export(QByteArray& out) {
    QDomDocument doc;
    QDomElement root = doc.createElement("font");
    doc.appendChild(root);
    QDomElement info = doc.createElement("info");
    root.appendChild(info);
    info.setAttribute("face", fontConfig()->family());
    info.setAttribute("size", fontConfig()->size());
    QDomElement common = doc.createElement("common");
    root.appendChild(common);
    int height = metrics().height;
    common.setAttribute("lineHeight", height);
    QDomElement pages = doc.createElement("pages");
    root.appendChild(pages);
    QDomElement page = doc.createElement("page");
    pages.appendChild(page);
    page.setAttribute("id", "0");
    page.setAttribute("file", texFilename());
    QDomElement chars = doc.createElement("chars");
    root.appendChild(chars);
    chars.setAttribute("count", symbols().size());
    QDomElement kernings = doc.createElement("kernings");
    int kernNumber = 0;
    foreach(const Symbol& c , symbols()) {
        QDomElement ch = doc.createElement("char");
        ch.setAttribute("id", QString::number(c.id));
        ch.setAttribute("x", QString::number(c.placeX));
        ch.setAttribute("y", QString::number(c.placeY));
        ch.setAttribute("width", QString::number(c.placeW));
        ch.setAttribute("height", QString::number(c.placeH));
        ch.setAttribute("xoffset", QString::number(c.offsetX));
        ch.setAttribute("yoffset", QString::number(height - c.offsetY));
        ch.setAttribute("xadvance", QString::number(c.advance));
        ch.setAttribute("page", "0");
        ch.setAttribute("chnl", "0");
        ch.setAttribute("letter", c.id==32 ? "space" : QString().append(c.id));
        chars.appendChild(ch);
        typedef QMap<uint,int>::ConstIterator Kerning;
        for ( Kerning k = c.kerning.begin();k!=c.kerning.end();k++) {
            QDomElement ker = doc.createElement("kerning");
            ker.setAttribute("first", QString::number(c.id));
            ker.setAttribute("second", QString::number(k.key()));
            ker.setAttribute("amount", k.value());
            kernings.appendChild(ker);
            kernNumber ++;
        }
    }
Esempio n. 3
0
bool LuaExporter::Export(QByteArray& out) {
    QString res;
    if (m_write_function)
        res+="return {\n";
    const QString p(m_write_function ? "\t":"");
    res+=p+QString("file=\"")+texFilename()+QString(m_write_function ? "\",\n" : "\"\n");
    res+=p+QString("height=")+QString().number(metrics().height)+QString(m_write_function?",\n":"\n");
    res+=p+QString("description={\n");
    res+=p+QString("\tfamily=\"")+fontConfig()->family()+QString("\",\n");
    res+=p+QString("\tstyle=\"")+fontConfig()->style()+QString("\",\n");
    res+=p+QString("\tsize=")+QString().number(fontConfig()->size())+QString("\n");
    res+=p+QString(m_write_function?"},\n":"}\n");

    res+=p+QString("metrics={\n");
    res+=p+QString("\tascender=")+QString().number(metrics().ascender)+QString(",\n");
    res+=p+QString("\tdescender=")+QString().number(metrics().descender)+QString(",\n");
    res+=p+QString("\theight=")+QString().number(metrics().height)+QString("\n");
    res+=p+QString(m_write_function?"},\n":"}\n");

    res+=p+QString("texture={\n");
    res+=p+QString("\tfile=\"")+texFilename()+QString("\",\n");
    res+=p+QString("\twidth=")+QString().number(texWidth())+QString(",\n");
    res+=p+QString("\theight=")+QString().number(texHeight())+QString("\n");
    res+=p+QString(m_write_function?"},\n":"}\n");

    res+=p+QString("chars={\n");
    foreach (const Symbol& c , symbols()) {
        QString charDef="{char=";
        charDef+=charCode(c.id);
        charDef+=QString(",");
        charDef+=QString("width=")+QString().number(c.advance)+QString(",");
        charDef+=QString("x=")+QString().number(c.placeX)+QString(",");
        charDef+=QString("y=")+QString().number(c.placeY)+QString(",");
        charDef+=QString("w=")+QString().number(c.placeW)+QString(",");
        charDef+=QString("h=")+QString().number(c.placeH)+QString(",");

        charDef+=QString("ox=")+QString().number(c.offsetX)+QString(",");
        charDef+=QString("oy=")+QString().number(c.offsetY)+QString("}");

        res+=p+QString("\t")+charDef+QString(",\n");
    }
Esempio n. 4
0
bool JsExporter::Export(QByteArray& out) {
    QString res = "var font = {\n";

    res+=QString("\t\"file\":\"")+texFilename()+QString("\",\n");
    res+=QString("\t\"height\":")+QString().number(metrics().height)+QString(",\n");
    res+=QString("\t\"description\":{\n");
    res+=QString("\t\t\"family\":\"")+fontConfig()->family()+QString("\",\n");
    res+=QString("\t\t\"style\":\"")+fontConfig()->style()+QString("\",\n");
    res+=QString("\t\t\"size\":")+QString().number(fontConfig()->size())+QString("\n");
    res+=QString("\t},\n");

    res+=QString("\t\"metrics\":{\n");
    res+=QString("\t\t\"ascender\":")+QString().number(metrics().ascender)+QString(",\n");
    res+=QString("\t\t\"descender\":")+QString().number(metrics().descender)+QString(",\n");
    res+=QString("\t\t\"height\":")+QString().number(metrics().height)+QString("\n");
    res+=QString("\t},\n");

    res+=QString("\t\"texture\":{\n");
    res+=QString("\t\t\"file\":\"")+texFilename()+QString("\",\n");
    res+=QString("\t\t\"width\":")+QString().number(texWidth())+QString(",\n");
    res+=QString("\t\t\"height\":")+QString().number(texHeight())+QString("\n");
    res+=QString("\t},\n");

    res+=QString("\t\"chars\":{\n");
    foreach (const Symbol& c , symbols()) {
        QString charDef=charCode(c.id);
        charDef+=QString(":{");
        charDef+=QString("\"width\":")+QString().number(c.advance)+QString(",");
        charDef+=QString("\"x\":")+QString().number(c.placeX)+QString(",");
        charDef+=QString("\"y\":")+QString().number(c.placeY)+QString(",");
        charDef+=QString("\"w\":")+QString().number(c.placeW)+QString(",");
        charDef+=QString("\"h\":")+QString().number(c.placeH)+QString(",");

        charDef+=QString("\"ox\":")+QString().number(c.offsetX)+QString(",");
        charDef+=QString("\"oy\":")+QString().number(c.offsetY)+QString("}");

        res+=QString("\t\t")+charDef+QString(",\n");
    }
bool SimpleXMLExporter::Export(QByteArray& out) {
    QDomDocument doc;
    doc.appendChild(doc.createProcessingInstruction("xml","version=\"1.0\" encoding=\"utf-8\"" ));
    QDomElement root = doc.createElement("Font");
    doc.appendChild(root);
    root.appendChild(text(doc, "size", QString::number(fontConfig()->size())));
    root.appendChild(text(doc, "height", QString::number(metrics().height)));

    int offset = metrics().ascender;

    foreach (const Symbol& c , symbols()) {
        QDomElement ce = doc.createElement("Char");
        ce.appendChild(text(doc, "code", QString::number(c.id)));
        {
            QDomElement place = doc.createElement("place");
            place.appendChild(text(doc, "x", QString::number(c.placeX)));
            place.appendChild(text(doc, "y", QString::number(c.placeY)));
            ce.appendChild(place);
        }

        {
            QDomElement dim = doc.createElement("dimensions");
            dim.appendChild(text(doc, "x", QString::number(c.placeW)));
            dim.appendChild(text(doc, "y", QString::number(c.placeH)));
            ce.appendChild(dim);
        }

        {
            QDomElement rect = doc.createElement("rect");
            rect.appendChild(text(doc, "x", QString::number(c.offsetX)));
            rect.appendChild(text(doc, "y", QString::number(offset - c.offsetY)));
            ce.appendChild(rect);
        }

        ce.appendChild(text(doc, "width", QString::number(c.advance)));

        assert(c.kerning.begin() == c.kerning.end());

        root.appendChild(ce);
    }