| /* | |
| * Copyright 2017 Google Inc. | |
| * | |
| * 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<SkDocument> MakeDocument(SkWStream* stream, | |
| IXpsOMObjectFactory* xpsFactory, | |
| Options opts); | |
| } // namespace SkXPS | |
| #endif // SK_BUILD_FOR_WIN | |
| #endif // SkXPSDocument_DEFINED |