chromium/third_party/skia/modules/skresources/include/SkResources.h

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

#ifndef SkResources_DEFINED
#define SkResources_DEFINED

#include "include/core/SkData.h"
#include "include/core/SkMatrix.h"
#include "include/core/SkRefCnt.h"
#include "include/core/SkSamplingOptions.h"
#include "include/core/SkString.h"
#include "include/core/SkTypeface.h"
#include "include/core/SkTypes.h"
#include "include/private/base/SkMutex.h"
#include "src/core/SkTHash.h"

#include <memory>

class SkAnimCodecPlayer;
class SkCodec;
class SkImage;

namespace skresources {

/**
 * Image asset proxy interface.
 */
class SK_API ImageAsset : public SkRefCnt {};

enum class ImageDecodeStrategy {};

class MultiFrameImageAsset final : public ImageAsset {};

/**
 * External track (e.g. audio playback) interface.
 *
 * Used to wrap data payload and playback controllers.
 */
class ExternalTrackAsset : public SkRefCnt {};

/**
 * ResourceProvider is an interface that lets rich-content modules defer loading of external
 * resources (images, fonts, etc.) to embedding clients.
 */
class SK_API ResourceProvider : public SkRefCnt {};

class FileResourceProvider final : public ResourceProvider {};

class ResourceProviderProxyBase : public ResourceProvider {};

class SK_API CachingResourceProvider final : public ResourceProviderProxyBase {};

class SK_API DataURIResourceProviderProxy final : public ResourceProviderProxyBase {};

} // namespace skresources

#endif // SkResources_DEFINED