aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pdf/SkPDFDevice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/pdf/SkPDFDevice.cpp')
-rw-r--r--src/pdf/SkPDFDevice.cpp124
1 files changed, 62 insertions, 62 deletions
diff --git a/src/pdf/SkPDFDevice.cpp b/src/pdf/SkPDFDevice.cpp
index 678e6c058f..a5c9557412 100644
--- a/src/pdf/SkPDFDevice.cpp
+++ b/src/pdf/SkPDFDevice.cpp
@@ -43,7 +43,7 @@
static void replace_srcmode_on_opaque_paint(SkPaint* paint) {
if (kSrcOver_SkXfermodeInterpretation
== SkInterpretXfermode(*paint, false)) {
- paint->setXfermode(NULL);
+ paint->setXfermode(nullptr);
}
}
@@ -86,7 +86,7 @@ static void align_text(SkDrawCacheProc glyphCacheProc, const SkPaint& paint,
SkMatrix ident;
ident.reset();
- SkAutoGlyphCache autoCache(paint, NULL, &ident);
+ SkAutoGlyphCache autoCache(paint, nullptr, &ident);
SkGlyphCache* cache = autoCache.getCache();
const char* start = reinterpret_cast<const char*>(glyphs);
@@ -126,7 +126,7 @@ static int force_glyph_encoding(const SkPaint& paint, const void* text,
const uint16_t** glyphIDs) {
// Make sure we have a glyph id encoding.
if (paint.getTextEncoding() != SkPaint::kGlyphID_TextEncoding) {
- int numGlyphs = paint.textToGlyphs(text, len, NULL);
+ int numGlyphs = paint.textToGlyphs(text, len, nullptr);
storage->reset(numGlyphs);
paint.textToGlyphs(text, len, storage->get());
*glyphIDs = storage->get();
@@ -204,10 +204,10 @@ struct GraphicStateEntry {
int fGraphicStateIndex;
// We may change the font (i.e. for Type1 support) within a
- // ContentEntry. This is the one currently in effect, or NULL if none.
+ // ContentEntry. This is the one currently in effect, or nullptr if none.
SkPDFFont* fFont;
// In PDF, text size has no default value. It is only valid if fFont is
- // not NULL.
+ // not nullptr.
SkScalar fTextSize;
};
@@ -216,7 +216,7 @@ GraphicStateEntry::GraphicStateEntry() : fColor(SK_ColorBLACK),
fTextFill(SkPaint::kFill_Style),
fShaderIndex(-1),
fGraphicStateIndex(-1),
- fFont(NULL),
+ fFont(nullptr),
fTextSize(SK_ScalarNaN) {
fMatrix.reset();
}
@@ -309,7 +309,7 @@ static void skip_clip_stack_prefix(const SkClipStack& prefix,
}
}
- SkASSERT(prefixEntry == NULL);
+ SkASSERT(prefixEntry == nullptr);
}
static void emit_clip(SkPath* clipPath, SkRect* clipRect,
@@ -444,7 +444,7 @@ void GraphicStackState::updateClip(const SkClipStack& clipStack,
#ifdef SK_PDF_USE_PATHOPS_CLIPPING
SkPath clipPath;
if (get_clip_stack_path(transform, clipStack, clipRegion, &clipPath)) {
- emit_clip(&clipPath, NULL, fContentStream);
+ emit_clip(&clipPath, nullptr, fContentStream);
return;
}
#endif
@@ -474,7 +474,7 @@ void GraphicStackState::updateClip(const SkClipStack& clipStack,
if (needRegion) {
SkPath clipPath;
SkAssertResult(clipRegion.getBoundaryPath(&clipPath));
- emit_clip(&clipPath, NULL, fContentStream);
+ emit_clip(&clipPath, nullptr, fContentStream);
} else {
skip_clip_stack_prefix(fEntries[0].fClipStack, clipStack, &iter);
const SkClipStack::Element* clipEntry;
@@ -484,14 +484,14 @@ void GraphicStackState::updateClip(const SkClipStack& clipStack,
case SkClipStack::Element::kRect_Type: {
SkRect translatedClip;
transform.mapRect(&translatedClip, clipEntry->getRect());
- emit_clip(NULL, &translatedClip, fContentStream);
+ emit_clip(nullptr, &translatedClip, fContentStream);
break;
}
default: {
SkPath translatedPath;
clipEntry->asPath(&translatedPath);
translatedPath.transform(transform, &translatedPath);
- emit_clip(&translatedPath, NULL, fContentStream);
+ emit_clip(&translatedPath, nullptr, fContentStream);
break;
}
}
@@ -572,13 +572,13 @@ static bool not_supported_for_layers(const SkPaint& layerPaint) {
// to improve quality and file size (http://skbug.com/3043)
// TODO: should we return true if there is a colorfilter?
- return layerPaint.getImageFilter() != NULL;
+ return layerPaint.getImageFilter() != nullptr;
}
SkBaseDevice* SkPDFDevice::onCreateDevice(const CreateInfo& cinfo, const SkPaint* layerPaint) {
if (cinfo.fForImageFilter ||
(layerPaint && not_supported_for_layers(*layerPaint))) {
- return NULL;
+ return nullptr;
}
SkISize size = SkISize::Make(cinfo.fInfo.width(), cinfo.fInfo.height());
return SkPDFDevice::Create(size, fRasterDpi, fCanon);
@@ -594,9 +594,9 @@ struct ContentEntry {
// So we manually destruct the object.
~ContentEntry() {
ContentEntry* val = fNext.detach();
- while (val != NULL) {
+ while (val != nullptr) {
ContentEntry* valNext = val->fNext.detach();
- // When the destructor is called, fNext is NULL and exits.
+ // When the destructor is called, fNext is nullptr and exits.
delete val;
val = valNext;
}
@@ -610,18 +610,18 @@ public:
ScopedContentEntry(SkPDFDevice* device, const SkDraw& draw,
const SkPaint& paint, bool hasText = false)
: fDevice(device),
- fContentEntry(NULL),
+ fContentEntry(nullptr),
fXfermode(SkXfermode::kSrcOver_Mode),
- fDstFormXObject(NULL) {
+ fDstFormXObject(nullptr) {
init(draw.fClipStack, *draw.fClip, *draw.fMatrix, paint, hasText);
}
ScopedContentEntry(SkPDFDevice* device, const SkClipStack* clipStack,
const SkRegion& clipRegion, const SkMatrix& matrix,
const SkPaint& paint, bool hasText = false)
: fDevice(device),
- fContentEntry(NULL),
+ fContentEntry(nullptr),
fXfermode(SkXfermode::kSrcOver_Mode),
- fDstFormXObject(NULL) {
+ fDstFormXObject(nullptr) {
init(clipStack, clipRegion, matrix, paint, hasText);
}
@@ -629,7 +629,7 @@ public:
if (fContentEntry) {
SkPath* shape = &fShape;
if (shape->isEmpty()) {
- shape = NULL;
+ shape = nullptr;
}
fDevice->finishContentEntry(fXfermode, fDstFormXObject, shape);
}
@@ -702,11 +702,11 @@ SkPDFDevice::SkPDFDevice(SkISize pageSize, SkScalar rasterDpi, SkPDFCanon* canon
, fPageSize(pageSize)
, fContentSize(pageSize)
, fExistingClipRegion(SkIRect::MakeSize(pageSize))
- , fAnnotations(NULL)
- , fLastContentEntry(NULL)
- , fLastMarginContentEntry(NULL)
+ , fAnnotations(nullptr)
+ , fLastContentEntry(nullptr)
+ , fLastMarginContentEntry(nullptr)
, fDrawingArea(kContent_DrawingArea)
- , fClipStack(NULL)
+ , fClipStack(nullptr)
, fFontGlyphUsage(new SkPDFGlyphSetMap)
, fRasterDpi(rasterDpi)
, fCanon(canon) {
@@ -731,13 +731,13 @@ SkPDFDevice::~SkPDFDevice() {
}
void SkPDFDevice::init() {
- fAnnotations = NULL;
+ fAnnotations = nullptr;
fContentEntries.free();
- fLastContentEntry = NULL;
+ fLastContentEntry = nullptr;
fMarginContentEntries.free();
- fLastMarginContentEntry = NULL;
+ fLastMarginContentEntry = nullptr;
fDrawingArea = kContent_DrawingArea;
- if (fFontGlyphUsage.get() == NULL) {
+ if (fFontGlyphUsage.get() == nullptr) {
fFontGlyphUsage.reset(new SkPDFGlyphSetMap);
}
}
@@ -946,7 +946,7 @@ static SkPDFDict* create_rect_annotation(const SkRect& r,
if (linkToName) {
return create_link_named_dest(linkToName, r);
}
- return NULL;
+ return nullptr;
}
void SkPDFDevice::drawRect(const SkDraw& d,
@@ -963,7 +963,7 @@ void SkPDFDevice::drawRect(const SkDraw& d,
}
SkPath path;
path.addRect(r);
- drawPath(d, path, paint, NULL, true);
+ drawPath(d, path, paint, nullptr, true);
return;
}
@@ -996,7 +996,7 @@ void SkPDFDevice::drawRRect(const SkDraw& draw,
replace_srcmode_on_opaque_paint(&paint);
SkPath path;
path.addRRect(rrect);
- this->drawPath(draw, path, paint, NULL, true);
+ this->drawPath(draw, path, paint, nullptr, true);
}
void SkPDFDevice::drawOval(const SkDraw& draw,
@@ -1006,7 +1006,7 @@ void SkPDFDevice::drawOval(const SkDraw& draw,
replace_srcmode_on_opaque_paint(&paint);
SkPath path;
path.addOval(oval);
- this->drawPath(draw, path, paint, NULL, true);
+ this->drawPath(draw, path, paint, nullptr, true);
}
void SkPDFDevice::drawPath(const SkDraw& d,
@@ -1043,14 +1043,14 @@ void SkPDFDevice::drawPath(const SkDraw& d,
bool fill = paint.getFillPath(origPath, pathPtr);
SkPaint noEffectPaint(paint);
- noEffectPaint.setPathEffect(NULL);
+ noEffectPaint.setPathEffect(nullptr);
if (fill) {
noEffectPaint.setStyle(SkPaint::kFill_Style);
} else {
noEffectPaint.setStyle(SkPaint::kStroke_Style);
noEffectPaint.setStrokeWidth(0);
}
- drawPath(d, *pathPtr, noEffectPaint, NULL, true);
+ drawPath(d, *pathPtr, noEffectPaint, nullptr, true);
return;
}
@@ -1154,7 +1154,7 @@ void SkPDFDevice::drawBitmap(const SkDraw& d, const SkBitmap& bitmap,
SkMatrix transform = matrix;
transform.postConcat(*d.fMatrix);
- this->internalDrawBitmap(transform, d.fClipStack, *d.fClip, bitmap, NULL,
+ this->internalDrawBitmap(transform, d.fClipStack, *d.fClip, bitmap, nullptr,
paint);
}
@@ -1171,7 +1171,7 @@ void SkPDFDevice::drawSprite(const SkDraw& d, const SkBitmap& bitmap,
SkMatrix matrix;
matrix.setTranslate(SkIntToScalar(x), SkIntToScalar(y));
- this->internalDrawBitmap(matrix, d.fClipStack, *d.fClip, bitmap, NULL,
+ this->internalDrawBitmap(matrix, d.fClipStack, *d.fClip, bitmap, nullptr,
paint);
}
@@ -1215,8 +1215,8 @@ void SkPDFDevice::drawText(const SkDraw& d, const void* text, size_t len,
SkPaint paint = srcPaint;
replace_srcmode_on_opaque_paint(&paint);
- NOT_IMPLEMENTED(paint.getMaskFilter() != NULL, false);
- if (paint.getMaskFilter() != NULL) {
+ NOT_IMPLEMENTED(paint.getMaskFilter() != nullptr, false);
+ if (paint.getMaskFilter() != nullptr) {
// Don't pretend we support drawing MaskFilters, it makes for artifacts
// making text unreadable (e.g. same text twice when using CSS shadows).
return;
@@ -1228,7 +1228,7 @@ void SkPDFDevice::drawText(const SkDraw& d, const void* text, size_t len,
}
SkGlyphStorage storage(0);
- const uint16_t* glyphIDs = NULL;
+ const uint16_t* glyphIDs = nullptr;
int numGlyphs = force_glyph_encoding(paint, text, len, &storage, &glyphIDs);
textPaint.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
@@ -1267,8 +1267,8 @@ void SkPDFDevice::drawPosText(const SkDraw& d, const void* text, size_t len,
SkPaint paint = srcPaint;
replace_srcmode_on_opaque_paint(&paint);
- NOT_IMPLEMENTED(paint.getMaskFilter() != NULL, false);
- if (paint.getMaskFilter() != NULL) {
+ NOT_IMPLEMENTED(paint.getMaskFilter() != nullptr, false);
+ if (paint.getMaskFilter() != nullptr) {
// Don't pretend we support drawing MaskFilters, it makes for artifacts
// making text unreadable (e.g. same text twice when using CSS shadows).
return;
@@ -1281,7 +1281,7 @@ void SkPDFDevice::drawPosText(const SkDraw& d, const void* text, size_t len,
}
SkGlyphStorage storage(0);
- const uint16_t* glyphIDs = NULL;
+ const uint16_t* glyphIDs = nullptr;
size_t numGlyphs = force_glyph_encoding(paint, text, len, &storage, &glyphIDs);
textPaint.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
@@ -1374,7 +1374,7 @@ void SkPDFDevice::onAttachToCanvas(SkCanvas* canvas) {
void SkPDFDevice::onDetachFromCanvas() {
INHERITED::onDetachFromCanvas();
- fClipStack = NULL;
+ fClipStack = nullptr;
}
SkSurface* SkPDFDevice::newSurface(const SkImageInfo& info, const SkSurfaceProps& props) {
@@ -1451,7 +1451,7 @@ void SkPDFDevice::copyContentEntriesToData(ContentEntry* entry,
// TODO(ctguil): For margins, I'm not sure fExistingClipStack/Region is the
// right thing to pass here.
GraphicStackState gsState(fExistingClipStack, fExistingClipRegion, data);
- while (entry != NULL) {
+ while (entry != nullptr) {
SkPoint translation;
translation.iset(this->getOrigin());
translation.negate();
@@ -1485,7 +1485,7 @@ void SkPDFDevice::writeContent(SkWStream* out) const {
if (fPageSize != fContentSize) {
SkRect r = SkRect::MakeWH(SkIntToScalar(this->width()),
SkIntToScalar(this->height()));
- emit_clip(NULL, &r, out);
+ emit_clip(nullptr, &r, out);
}
SkPDFDevice::copyContentEntriesToData(fContentEntries.get(), out);
@@ -1525,7 +1525,7 @@ bool SkPDFDevice::handleInversePath(const SkDraw& d, const SkPath& origPath,
// To be consistent with the raster output, hairline strokes
// are rendered as non-inverted.
modifiedPath.toggleInverseFillType();
- drawPath(d, modifiedPath, paint, NULL, true);
+ drawPath(d, modifiedPath, paint, nullptr, true);
return true;
}
}
@@ -1584,7 +1584,7 @@ bool SkPDFDevice::handlePointAnnotation(const SkPoint* points, size_t count,
}
void SkPDFDevice::addAnnotation(SkPDFDict* annotation) {
- if (NULL == fAnnotations) {
+ if (nullptr == fAnnotations) {
fAnnotations = new SkPDFArray;
}
fAnnotations->appendObject(annotation);
@@ -1653,14 +1653,14 @@ ContentEntry* SkPDFDevice::setUpContentEntry(const SkClipStack* clipStack,
const SkPaint& paint,
bool hasText,
SkPDFFormXObject** dst) {
- *dst = NULL;
+ *dst = nullptr;
if (clipRegion.isEmpty()) {
- return NULL;
+ return nullptr;
}
// The clip stack can come from an SkDraw where it is technically optional.
SkClipStack synthesizedClipStack;
- if (clipStack == NULL) {
+ if (clipStack == nullptr) {
if (clipRegion == fExistingClipRegion) {
clipStack = &fExistingClipStack;
} else {
@@ -1699,7 +1699,7 @@ ContentEntry* SkPDFDevice::setUpContentEntry(const SkClipStack* clipStack,
xfermode != SkXfermode::kSrcOut_Mode) {
// Except for Src and SrcOut, if there isn't anything already there,
// then we're done.
- return NULL;
+ return nullptr;
}
}
// TODO(vandebo): Figure out how/if we can handle the following modes:
@@ -1707,7 +1707,7 @@ ContentEntry* SkPDFDevice::setUpContentEntry(const SkClipStack* clipStack,
// Dst xfer mode doesn't draw source at all.
if (xfermode == SkXfermode::kDst_Mode) {
- return NULL;
+ return nullptr;
}
ContentEntry* entry;
@@ -1798,7 +1798,7 @@ void SkPDFDevice::finishContentEntry(SkXfermode::Mode xfermode,
// If there is shape, then an empty source with Src, SrcIn, SrcOut,
// DstIn, DstAtop or Modulate reduces to Clear and DstOut or SrcAtop
// reduces to Dst.
- if (shape == NULL || xfermode == SkXfermode::kDstOut_Mode ||
+ if (shape == nullptr || xfermode == SkXfermode::kDstOut_Mode ||
xfermode == SkXfermode::kSrcATop_Mode) {
ScopedContentEntry content(this, &fExistingClipStack,
fExistingClipRegion, identity,
@@ -1827,7 +1827,7 @@ void SkPDFDevice::finishContentEntry(SkXfermode::Mode xfermode,
} else {
SkAutoTUnref<SkPDFFormXObject> dstMaskStorage;
SkPDFFormXObject* dstMask = srcFormXObject.get();
- if (shape != NULL) {
+ if (shape != nullptr) {
// Draw shape into a form-xobject.
SkDraw d;
d.fMatrix = &identity;
@@ -1836,7 +1836,7 @@ void SkPDFDevice::finishContentEntry(SkXfermode::Mode xfermode,
SkPaint filledPaint;
filledPaint.setColor(SK_ColorBLACK);
filledPaint.setStyle(SkPaint::kFill_Style);
- this->drawPath(d, *shape, filledPaint, NULL, true);
+ this->drawPath(d, *shape, filledPaint, nullptr, true);
dstMaskStorage.reset(createFormXObjectFromDevice());
dstMask = dstMaskStorage.get();
@@ -1915,9 +1915,9 @@ void SkPDFDevice::populateGraphicStateEntryFromPaint(
const SkPaint& paint,
bool hasText,
GraphicStateEntry* entry) {
- NOT_IMPLEMENTED(paint.getPathEffect() != NULL, false);
- NOT_IMPLEMENTED(paint.getMaskFilter() != NULL, false);
- NOT_IMPLEMENTED(paint.getColorFilter() != NULL, false);
+ NOT_IMPLEMENTED(paint.getPathEffect() != nullptr, false);
+ NOT_IMPLEMENTED(paint.getMaskFilter() != nullptr, false);
+ NOT_IMPLEMENTED(paint.getColorFilter() != nullptr, false);
entry->fMatrix = matrix;
entry->fClipStack = clipStack;
@@ -1967,7 +1967,7 @@ void SkPDFDevice::populateGraphicStateEntryFromPaint(
SkShader::GradientInfo gradientInfo;
SkColor gradientColor;
gradientInfo.fColors = &gradientColor;
- gradientInfo.fColorOffsets = NULL;
+ gradientInfo.fColorOffsets = nullptr;
gradientInfo.fColorCount = 1;
if (shader->asAGradient(&gradientInfo) ==
SkShader::kColor_GradientType) {
@@ -2025,7 +2025,7 @@ int SkPDFDevice::addXObjectResource(SkPDFObject* xObject) {
void SkPDFDevice::updateFont(const SkPaint& paint, uint16_t glyphID,
ContentEntry* contentEntry) {
SkTypeface* typeface = paint.getTypeface();
- if (contentEntry->fState.fFont == NULL ||
+ if (contentEntry->fState.fFont == nullptr ||
contentEntry->fState.fTextSize != paint.getTextSize() ||
!contentEntry->fState.fFont->hasGlyph(glyphID)) {
int fontIndex = getFontResourceIndex(typeface, glyphID);
@@ -2080,7 +2080,7 @@ void SkPDFDevice::internalDrawBitmap(const SkMatrix& origMatrix,
subsetBitmap = &tmpSubsetBitmap;
*subsetBitmap = origBitmap;
}
- srcRect = NULL;
+ srcRect = nullptr;
// Transform the bitmap in the new space, without taking into
// account the initial transform.
@@ -2156,7 +2156,7 @@ void SkPDFDevice::internalDrawBitmap(const SkMatrix& origMatrix,
SkScalarCeilToInt(bounds.width()),
SkScalarCeilToInt(bounds.height())));
clipRegion = &perspectiveBounds;
- srcRect = NULL;
+ srcRect = nullptr;
bitmap = &perspectiveBitmap;
}