metafile_skia_wrapper.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef PRINTING_METAFILE_SKIA_WRAPPER_H_ 6#define PRINTING_METAFILE_SKIA_WRAPPER_H_ 7 8#include "printing/printing_export.h" 9#include "third_party/skia/include/core/SkRefCnt.h" 10 11class SkCanvas; 12 13namespace printing { 14 15class Metafile; 16 17// A wrapper class with static methods to set and retrieve a Metafile 18// on an SkCanvas. The ownership of the metafile is not affected and it 19// is the caller's responsibility to ensure that the metafile remains valid 20// as long as the canvas. 21class PRINTING_EXPORT MetafileSkiaWrapper : public SkRefCnt { 22 public: 23 static void SetMetafileOnCanvas(const SkCanvas& canvas, Metafile* metafile); 24 25 static Metafile* GetMetafileFromCanvas(const SkCanvas& canvas); 26 27 // Methods to set and retrieve custom scale factor for metafile from canvas. 28 static void SetCustomScaleOnCanvas(const SkCanvas& canvas, double scale); 29 static bool GetCustomScaleOnCanvas(const SkCanvas& canvas, double* scale); 30 31 private: 32 explicit MetafileSkiaWrapper(Metafile* metafile); 33 34 Metafile* metafile_; 35}; 36 37} // namespace printing 38 39#endif // PRINTING_METAFILE_SKIA_WRAPPER_H_ 40