#include "src/gpu/ganesh/gradients/GrGradientBitmapCache.h"
#include "include/core/SkAlphaType.h"
#include "include/core/SkBitmap.h"
#include "include/core/SkColorSpace.h"
#include "include/core/SkImageInfo.h"
#include "include/core/SkMatrix.h"
#include "include/core/SkTypes.h"
#include "include/private/base/SkMalloc.h"
#include "include/private/base/SkTemplates.h"
#include "src/base/SkArenaAlloc.h"
#include "src/base/SkFloatBits.h"
#include "src/core/SkRasterPipeline.h"
#include "src/core/SkRasterPipelineOpContexts.h"
#include "src/core/SkRasterPipelineOpList.h"
#include "src/shaders/gradients/SkGradientBaseShader.h"
#include <cstdint>
#include <cstring>
usingnamespaceskia_private;
struct GrGradientBitmapCache::Entry { … };
GrGradientBitmapCache::GrGradientBitmapCache(int max, int res)
: … { … }
GrGradientBitmapCache::~GrGradientBitmapCache() { … }
GrGradientBitmapCache::Entry* GrGradientBitmapCache::release(Entry* entry) const { … }
void GrGradientBitmapCache::attachToHead(Entry* entry) const { … }
bool GrGradientBitmapCache::find(const void* buffer, size_t size, SkBitmap* bm) const { … }
void GrGradientBitmapCache::add(const void* buffer, size_t len, const SkBitmap& bm) { … }
void GrGradientBitmapCache::fillGradient(const SkPMColor4f* colors,
const SkScalar* positions,
int count,
bool colorsAreOpaque,
const SkGradientShader::Interpolation& interpolation,
const SkColorSpace* intermediateColorSpace,
const SkColorSpace* dstColorSpace,
SkBitmap* bitmap) { … }
void GrGradientBitmapCache::getGradient(const SkPMColor4f* colors,
const SkScalar* positions,
int count,
bool colorsAreOpaque,
const SkGradientShader::Interpolation& interpolation,
const SkColorSpace* intermediateColorSpace,
const SkColorSpace* dstColorSpace,
SkColorType colorType,
SkAlphaType alphaType,
SkBitmap* bitmap) { … }
#ifdef SK_DEBUG
void GrGradientBitmapCache::validate() const { … }
#endif