chromium/third_party/skia/src/core/SkPictureData.h

/*
 * Copyright 2011 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#ifndef SkPictureData_DEFINED
#define SkPictureData_DEFINED

#include "include/core/SkBitmap.h"
#include "include/core/SkData.h"
#include "include/core/SkDrawable.h"
#include "include/core/SkImage.h"
#include "include/core/SkPaint.h"
#include "include/core/SkPath.h"
#include "include/core/SkPicture.h"
#include "include/core/SkRect.h"
#include "include/core/SkRefCnt.h"
#include "include/core/SkTextBlob.h"
#include "include/core/SkTypes.h"
#include "include/core/SkVertices.h"
#include "include/private/base/SkTArray.h"
#include "include/private/chromium/Slug.h"
#include "src/core/SkPictureFlat.h"
#include "src/core/SkReadBuffer.h"

#include <cstdint>
#include <memory>

class SkFactorySet;
class SkPictureRecord;
class SkRefCntSet;
class SkStream;
class SkWStream;
class SkWriteBuffer;
struct SkDeserialProcs;
struct SkSerialProcs;

struct SkPictInfo {};

#define SK_PICT_READER_TAG
#define SK_PICT_FACTORY_TAG
#define SK_PICT_TYPEFACE_TAG
#define SK_PICT_PICTURE_TAG
#define SK_PICT_DRAWABLE_TAG

// This tag specifies the size of the ReadBuffer, needed for the following tags
#define SK_PICT_BUFFER_SIZE_TAG
// these are all inside the ARRAYS tag
#define SK_PICT_PAINT_BUFFER_TAG
#define SK_PICT_PATH_BUFFER_TAG
#define SK_PICT_TEXTBLOB_BUFFER_TAG
#define SK_PICT_SLUG_BUFFER_TAG
#define SK_PICT_VERTICES_BUFFER_TAG
#define SK_PICT_IMAGE_BUFFER_TAG

// Always write this last (with no length field afterwards)
#define SK_PICT_EOF_TAG

template <typename T>
T* read_index_base_1_or_null(SkReadBuffer* reader,
                             const skia_private::TArray<sk_sp<T>>& array) {}

class SkPictureData {};

#endif