44 lines
1.1 KiB
C++
44 lines
1.1 KiB
C++
/*
|
|
* 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<SkDocument> MakeDocument(SkWStream* stream,
|
|
IXpsOMObjectFactory* xpsFactory,
|
|
Options opts);
|
|
} // namespace SkXPS
|
|
#endif // SK_BUILD_FOR_WIN
|
|
#endif // SkXPSDocument_DEFINED
|