#include "src/shaders/SkPictureShader.h"
#include "include/core/SkAlphaType.h"
#include "include/core/SkCanvas.h"
#include "include/core/SkColorSpace.h"
#include "include/core/SkColorType.h"
#include "include/core/SkImage.h"
#include "include/core/SkPoint.h"
#include "include/core/SkSamplingOptions.h"
#include "include/core/SkScalar.h"
#include "include/core/SkShader.h"
#include "include/core/SkSurface.h"
#include "include/core/SkTileMode.h"
#include "include/private/base/SkDebug.h"
#include "include/private/base/SkFloatingPoint.h"
#include "src/base/SkArenaAlloc.h"
#include "src/core/SkEffectPriv.h"
#include "src/core/SkImageInfoPriv.h"
#include "src/core/SkMatrixPriv.h"
#include "src/core/SkPicturePriv.h"
#include "src/core/SkReadBuffer.h"
#include "src/core/SkResourceCache.h"
#include "src/core/SkWriteBuffer.h"
#include "src/shaders/SkLocalMatrixShader.h"
#include <algorithm>
#include <cstddef>
#include <cstdint>
#include <utility>
class SkDiscardableMemory;
sk_sp<SkShader> SkPicture::makeShader(SkTileMode tmx, SkTileMode tmy, SkFilterMode filter,
const SkMatrix* localMatrix, const SkRect* tile) const { … }
namespace {
static unsigned gImageFromPictureKeyNamespaceLabel;
struct ImageFromPictureKey : public SkResourceCache::Key { … };
struct ImageFromPictureRec : public SkResourceCache::Rec { … };
}
SkPictureShader::SkPictureShader(sk_sp<SkPicture> picture,
SkTileMode tmx,
SkTileMode tmy,
SkFilterMode filter,
const SkRect* tile)
: … { … }
sk_sp<SkShader> SkPictureShader::Make(sk_sp<SkPicture> picture, SkTileMode tmx, SkTileMode tmy,
SkFilterMode filter, const SkMatrix* lm, const SkRect* tile) { … }
sk_sp<SkFlattenable> SkPictureShader::CreateProc(SkReadBuffer& buffer) { … }
void SkPictureShader::flatten(SkWriteBuffer& buffer) const { … }
static sk_sp<SkColorSpace> ref_or_srgb(SkColorSpace* cs) { … }
SkPictureShader::CachedImageInfo SkPictureShader::CachedImageInfo::Make(
const SkRect& bounds,
const SkMatrix& totalM,
SkColorType dstColorType,
SkColorSpace* dstColorSpace,
const int maxTextureSize,
const SkSurfaceProps& propsIn) { … }
sk_sp<SkImage> SkPictureShader::CachedImageInfo::makeImage(sk_sp<SkSurface> surf,
const SkPicture* pict) const { … }
sk_sp<SkShader> SkPictureShader::rasterShader(const SkMatrix& totalM,
SkColorType dstColorType,
SkColorSpace* dstColorSpace,
const SkSurfaceProps& propsIn) const { … }
bool SkPictureShader::appendStages(const SkStageRec& rec, const SkShaders::MatrixRec& mRec) const { … }
#ifdef SK_ENABLE_LEGACY_SHADERCONTEXT
SkShaderBase::Context* SkPictureShader::onMakeContext(const ContextRec& rec,
SkArenaAlloc* alloc) const { … }
#endif