Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(31)

Unified Diff: experimental/PdfViewer/SkPdfRenderer.cpp

Issue 23258004: pdfviewer: code cleanup - remove STL usage (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « experimental/PdfViewer/SkPdfGraphicsState.h ('k') | experimental/PdfViewer/SkPdfUtils.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: experimental/PdfViewer/SkPdfRenderer.cpp
===================================================================
--- experimental/PdfViewer/SkPdfRenderer.cpp (revision 10721)
+++ experimental/PdfViewer/SkPdfRenderer.cpp (working copy)
@@ -20,9 +20,6 @@
#include "SkPdfGraphicsState.h"
#include "SkPdfNativeTokenizer.h"
-#include <cstdio>
-#include <stack>
-#include <set>
extern "C" SkPdfContext* gPdfContext;
extern "C" SkBitmap* gDumpBitmap;
@@ -42,7 +39,7 @@
// TODO(edisonn): move trace dump in the get functions, and mapper ones too so it ghappens automatically
/*
#ifdef PDF_TRACE
- std::string str;
+ SkString str;
pdfContext->fGraphicsState.fResources->native()->ToString(str);
printf("Print Tf Resources: %s\n", str.c_str());
#endif
@@ -74,8 +71,6 @@
* - deal with specific type in spec directly, add all dictionary types to known types
*/
-using namespace std;
-
NotOwnedString strings_DeviceRGB;
NotOwnedString strings_DeviceCMYK;
@@ -414,7 +409,7 @@
static SkBitmap* transferImageStreamToBitmap(const unsigned char* uncompressedStream, size_t uncompressedStreamLength,
int width, int height, int bytesPerLine,
- int bpc, const std::string& colorSpace,
+ int bpc, const SkString& colorSpace,
bool transparencyMask) {
SkBitmap* bitmap = new SkBitmap();
@@ -425,7 +420,7 @@
// Is there a faster way to load the uncompressed stream into a bitmap?
// minimal support for now
- if ((colorSpace == "DeviceRGB" || colorSpace == "RGB") && bpc == 8) {
+ if ((colorSpace.equals("DeviceRGB") || colorSpace.equals("RGB")) && bpc == 8) {
SkColor* uncompressedStreamArgb = (SkColor*)malloc(width * height * sizeof(SkColor));
for (int h = 0 ; h < height; h++) {
@@ -442,7 +437,7 @@
bitmap->setConfig(SkBitmap::kARGB_8888_Config, width, height);
bitmap->setPixels(uncompressedStreamArgb);
}
- else if ((colorSpace == "DeviceGray" || colorSpace == "Gray") && bpc == 8) {
+ else if ((colorSpace.equals("DeviceGray") || colorSpace.equals("Gray")) && bpc == 8) {
unsigned char* uncompressedStreamA8 = (unsigned char*)malloc(width * height);
for (int h = 0 ; h < height; h++) {
@@ -482,7 +477,7 @@
int bpc = (int)image->BitsPerComponent(pdfContext->fPdfDoc);
int width = (int)image->Width(pdfContext->fPdfDoc);
int height = (int)image->Height(pdfContext->fPdfDoc);
- std::string colorSpace = "DeviceRGB";
+ SkString colorSpace("DeviceRGB");
bool indexed = false;
SkPMColor colors[256];
@@ -543,11 +538,11 @@
SkPdfStreamCommonDictionary* streamDict = (SkPdfStreamCommonDictionary*)stream;
if (streamDict->has_Filter() && ((streamDict->isFilterAName(NULL) &&
- streamDict->getFilterAsName(NULL) == "DCTDecode") ||
+ streamDict->getFilterAsName(NULL).equals("DCTDecode")) ||
(streamDict->isFilterAArray(NULL) &&
streamDict->getFilterAsArray(NULL)->size() > 0 &&
streamDict->getFilterAsArray(NULL)->objAtAIndex(0)->isName() &&
- streamDict->getFilterAsArray(NULL)->objAtAIndex(0)->nameValue2() == "DCTDecode"))) {
+ streamDict->getFilterAsArray(NULL)->objAtAIndex(0)->nameValue2().equals("DCTDecode")))) {
SkBitmap* bitmap = new SkBitmap();
SkImageDecoder::DecodeMemory(uncompressedStream, uncompressedStreamLength, bitmap);
return bitmap;
@@ -877,28 +872,25 @@
return kPartial_SkPdfResult;
}
-
-// TODO(edisonn): make sure the pointer is unique
-std::set<const SkPdfNativeObject*> gInRendering;
-
class CheckRecursiveRendering {
- const SkPdfNativeObject* fUniqueData;
+ SkPdfNativeObject* fObj;
public:
- CheckRecursiveRendering(const SkPdfNativeObject* obj) : fUniqueData(obj) {
- gInRendering.insert(obj);
+ CheckRecursiveRendering(SkPdfNativeObject* obj) : fObj(obj) {
+ SkASSERT(!obj->inRendering());
+ obj->startRendering();
}
~CheckRecursiveRendering() {
- //SkASSERT(fObj.fInRendering);
- gInRendering.erase(fUniqueData);
+ SkASSERT(fObj->inRendering());
+ fObj->doneRendering();
}
static bool IsInRendering(const SkPdfNativeObject* obj) {
- return gInRendering.find(obj) != gInRendering.end();
+ return obj->inRendering();
}
};
-static SkPdfResult doXObject(SkPdfContext* pdfContext, SkCanvas* canvas, const SkPdfNativeObject* obj) {
+static SkPdfResult doXObject(SkPdfContext* pdfContext, SkCanvas* canvas, SkPdfNativeObject* obj) {
if (CheckRecursiveRendering::IsInRendering(obj)) {
// Oops, corrupt PDF!
return kIgnoreError_SkPdfResult;
@@ -1869,7 +1861,7 @@
pdfContext->fGraphicsState.fDashPhase = phase->scalarValue();
if (pdfContext->fGraphicsState.fDashPhase == 0) {
// other rules, changes?
- pdfContext->fGraphicsState.fDashPhase = total;
+ pdfContext->fGraphicsState.fDashPhase = SkDoubleToScalar(total);
}
return kOK_SkPdfResult;
@@ -1901,13 +1893,15 @@
//lineCap J Set the line cap style in the graphics state (see “Line Cap Style” on page 153).
static SkPdfResult PdfOp_J(SkPdfContext* pdfContext, SkCanvas* canvas, PdfTokenLooper** looper) {
- int64_t lc = pdfContext->fObjectStack.top()->numberValue(); pdfContext->fObjectStack.pop();
+ // TODO(edisonn): round/ceil to int?
+ int lc = (int)pdfContext->fObjectStack.top()->numberValue(); pdfContext->fObjectStack.pop();
return skpdfGraphicsStateApplyLC(pdfContext, lc);
}
//lineJoin j Set the line join style in the graphics state (see “Line Join Style” on page 153).
static SkPdfResult PdfOp_j(SkPdfContext* pdfContext, SkCanvas* canvas, PdfTokenLooper** looper) {
- double lj = pdfContext->fObjectStack.top()->numberValue(); pdfContext->fObjectStack.pop();
+ // TODO(edisonn): round/ceil to int?
+ int lj = (int)pdfContext->fObjectStack.top()->numberValue(); pdfContext->fObjectStack.pop();
return skpdfGraphicsStateApplyLJ(pdfContext, lj);
}
@@ -1985,8 +1979,8 @@
return (SkXfermode::Mode)(SkXfermode::kLastMode + 1);
}
-static void skpdfGraphicsStateApplyBM_name(SkPdfContext* pdfContext, const std::string& blendMode) {
- SkXfermode::Mode mode = xferModeFromBlendMode(blendMode.c_str(), blendMode.length());
+static void skpdfGraphicsStateApplyBM_name(SkPdfContext* pdfContext, const SkString& blendMode) {
+ SkXfermode::Mode mode = xferModeFromBlendMode(blendMode.c_str(), blendMode.size());
if (mode <= SkXfermode::kLastMode) {
pdfContext->fGraphicsState.fBlendModesLength = 1;
pdfContext->fGraphicsState.fBlendModes[0] = mode;
@@ -2033,8 +2027,8 @@
}
}
-static void skpdfGraphicsStateApplySMask_name(SkPdfContext* pdfContext, const std::string& sMask) {
- if (sMask == "None") {
+static void skpdfGraphicsStateApplySMask_name(SkPdfContext* pdfContext, const SkString& sMask) {
+ if (sMask.equals("None")) {
pdfContext->fGraphicsState.fSoftMaskDictionary = NULL;
pdfContext->fGraphicsState.fSMask = NULL;
return;
@@ -2074,7 +2068,7 @@
SkPdfNativeObject* name = pdfContext->fObjectStack.top(); pdfContext->fObjectStack.pop();
#ifdef PDF_TRACE
- std::string str;
+ SkString str;
#endif
//Next, get the ExtGState Dictionary from the Resource Dictionary:
@@ -2406,8 +2400,6 @@
InitPdfOps gInitPdfOps;
void reportPdfRenderStats() {
- std::map<std::string, int>::iterator iter;
-
for (int i = 0 ; i < kCount_SkPdfResult; i++) {
SkTDict<int>::Iter iter(gRenderStats[i]);
const char* key;
« no previous file with comments | « experimental/PdfViewer/SkPdfGraphicsState.h ('k') | experimental/PdfViewer/SkPdfUtils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698