/* * Copyright 2017 Google LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkXPSDocument_DEFINED #define SkXPSDocument_DEFINED #include "include/core/SkTypes.h" #ifdef SK_BUILD_FOR_WIN #include "include/core/SkDocument.h" struct IXpsOMObjectFactory; class SKWStream; class SkPixmap; namespace SkXPS { using EncodePngCallback = bool (*)(SkWStream* dst, const SkPixmap& src); struct Options { float dpi = SK_ScalarDefaultRasterDPI; /** Clients can provide a way to encode png. */ EncodePngCallback pngEncoder = nullptr; /** Skia's XPS support depends on having a png encoder registered to handle * XPS image brushes. Clients that create XPS documents without images may * set `allowNoPngs` to true to acknowledge this. */ bool allowNoPngs = false; }; SK_API sk_sp MakeDocument(SkWStream* stream, IXpsOMObjectFactory* xpsFactory, Options opts); } // namespace SkXPS #endif // SK_BUILD_FOR_WIN #endif // SkXPSDocument_DEFINED