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

Unified Diff: src/pdf/SkPDFImage.h

Issue 22889020: Refactor SkPDFImage (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Fix some nits 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 | « gyp/pdf.gypi ('k') | src/pdf/SkPDFImage.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/pdf/SkPDFImage.h
diff --git a/src/pdf/SkPDFImage.h b/src/pdf/SkPDFImage.h
index 31f894086ee3949e20e952d205ed818ac3b01f7d..52d323d0eedd8e969a1c66f2b2b3e231b141d10c 100644
--- a/src/pdf/SkPDFImage.h
+++ b/src/pdf/SkPDFImage.h
@@ -11,7 +11,7 @@
#define SkPDFImage_DEFINED
#include "SkPDFDevice.h"
-#include "SkPDFImageStream.h"
+#include "SkPDFStream.h"
#include "SkPDFTypes.h"
#include "SkRefCnt.h"
@@ -27,7 +27,7 @@ struct SkIRect;
// We could play the same trick here as is done in SkPDFGraphicState, storing
// a copy of the Bitmap object (not the pixels), the pixel generation number,
// and settings used from the paint to canonicalize image objects.
-class SkPDFImage : public SkPDFImageStream {
+class SkPDFImage : public SkPDFStream {
public:
/** Create a new Image XObject to represent the passed bitmap.
* @param bitmap The image to encode.
@@ -48,24 +48,50 @@ public:
*/
SkPDFImage* addSMask(SkPDFImage* mask);
+ bool isEmpty() {
+ return fSrcRect.isEmpty();
+ }
+
// The SkPDFObject interface.
virtual void getResources(const SkTSet<SkPDFObject*>& knownResourceObjects,
SkTSet<SkPDFObject*>* newResourceObjects);
private:
+ SkBitmap fBitmap;
+ bool fIsAlpha;
+ SkIRect fSrcRect;
+ EncodeToDCTStream fEncoder;
+ bool fStreamValid;
+
SkTDArray<SkPDFObject*> fResources;
/** Create a PDF image XObject. Entries for the image properties are
* automatically added to the stream dictionary.
- * @param imageData The final raw bits representing the image.
- * @param bitmap The image parameters to use (Config, etc).
+ * @param stream The image stream. May be NULL. Otherwise, this
+ * (instead of the input bitmap) will be used as the
+ * PDF's content stream, possibly with lossless encoding.
+ * @param bitmap The image. If a stream is not given, its color data
+ * will be used as the image. If a stream is given, this
+ * is used for configuration only.
+ * @param isAlpha Whether or not this is the alpha of an image.
* @param srcRect The clipping applied to bitmap before generating
* imageData.
- * @param alpha Is this the alpha channel of the bitmap.
- * @param paint Used to calculate alpha, masks, etc.
+ * @param encoder A function used to encode the bitmap for compression.
+ * May be NULL.
+ */
+ SkPDFImage(SkStream* stream, const SkBitmap& bitmap, bool isAlpha,
+ const SkIRect& srcRect, EncodeToDCTStream encoder);
+
+ /** Copy constructor, used to generate substitutes.
+ * @param image The SkPDFImage to copy.
*/
- SkPDFImage(SkStream* imageData, const SkBitmap& bitmap,
- const SkIRect& srcRect, bool alpha, EncodeToDCTStream encoder);
+ SkPDFImage(SkPDFImage& pdfImage);
+
+ // Populate the stream dictionary. This method returns false if
+ // fSubstitute should be used.
+ virtual bool populate(SkPDFCatalog* catalog);
+
+ typedef SkPDFStream INHERITED;
};
#endif
« no previous file with comments | « gyp/pdf.gypi ('k') | src/pdf/SkPDFImage.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698