예제 #1
0
파일: SkPDFTypes.cpp 프로젝트: bunhere/skia
void SkPDFInt::emitObject(SkWStream* stream, SkPDFCatalog* catalog,
                          bool indirect) {
    if (indirect) {
        return emitIndirectObject(stream, catalog);
    }
    stream->writeDecAsText(fValue);
}
예제 #2
0
void SkPDFImage::emitObject(SkWStream* stream, SkPDFCatalog* catalog,
                             bool indirect) {
    if (indirect)
        return emitIndirectObject(stream, catalog);

    fStream->emitObject(stream, catalog, indirect);
}
예제 #3
0
파일: SkPDFTypes.cpp 프로젝트: bunhere/skia
void SkPDFScalar::emitObject(SkWStream* stream, SkPDFCatalog* catalog,
                             bool indirect) {
    if (indirect) {
        return emitIndirectObject(stream, catalog);
    }

    Append(fValue, stream);
}
예제 #4
0
파일: SkPDFTypes.cpp 프로젝트: bunhere/skia
void SkPDFDict::emitObject(SkWStream* stream, SkPDFCatalog* catalog,
                           bool indirect) {
    if (indirect) {
        return emitIndirectObject(stream, catalog);
    }

    stream->writeText("<<");
    for (int i = 0; i < fValue.count(); i++) {
        fValue[i].key->emitObject(stream, catalog, false);
        stream->writeText(" ");
        fValue[i].value->emit(stream, catalog, false);
        stream->writeText("\n");
    }
    stream->writeText(">>");
}
예제 #5
0
파일: SkPDFTypes.cpp 프로젝트: bunhere/skia
void SkPDFArray::emitObject(SkWStream* stream, SkPDFCatalog* catalog,
                            bool indirect) {
    if (indirect) {
        return emitIndirectObject(stream, catalog);
    }

    stream->writeText("[");
    for (int i = 0; i < fValue.count(); i++) {
        fValue[i]->emit(stream, catalog, false);
        if (i + 1 < fValue.count()) {
            stream->writeText(" ");
        }
    }
    stream->writeText("]");
}
예제 #6
0
void SkPDFStream::emitObject(SkWStream* stream, SkPDFCatalog* catalog,
                             bool indirect) {
    if (indirect)
        return emitIndirectObject(stream, catalog);

    this->INHERITED::emitObject(stream, catalog, false);
    stream->writeText(" stream\n");
    if (fPlainData.get()) {
        stream->write(fPlainData->getMemoryBase(), fLength);
    } else {
        SkAutoDataUnref data(fCompressedData.copyToData());
        stream->write(data.data(), fLength);
    }
    stream->writeText("\nendstream");
}
예제 #7
0
파일: SkPDFTypes.cpp 프로젝트: 3rdexp/soui
void SkPDFDict::emitObject(SkWStream* stream, SkPDFCatalog* catalog,
                           bool indirect) {
    if (indirect) {
        return emitIndirectObject(stream, catalog);
    }

    SkAutoMutexAcquire lock(fMutex); // If another thread triggers a
                                     // resize while this thread is in
                                     // the for-loop, we can be left
                                     // with a bad fValue[i] reference.
    stream->writeText("<<");
    for (int i = 0; i < fValue.count(); i++) {
        SkASSERT(fValue[i].key);
        SkASSERT(fValue[i].value);
        fValue[i].key->emitObject(stream, catalog, false);
        stream->writeText(" ");
        fValue[i].value->emit(stream, catalog, false);
        stream->writeText("\n");
    }
    stream->writeText(">>");
}
예제 #8
0
파일: SkPDFTypes.cpp 프로젝트: bunhere/skia
void SkPDFString::emitObject(SkWStream* stream, SkPDFCatalog* catalog,
                             bool indirect) {
    if (indirect)
        return emitIndirectObject(stream, catalog);
    stream->write(fValue.c_str(), fValue.size());
}