#include "src/shaders/gradients/SkConicalGradient.h"
#include "include/core/SkColor.h"
#include "include/core/SkColorSpace.h"
#include "include/core/SkMatrix.h"
#include "include/core/SkShader.h"
#include "include/core/SkTileMode.h"
#include "include/effects/SkGradientShader.h"
#include "include/private/base/SkAssert.h"
#include "include/private/base/SkFloatingPoint.h"
#include "include/private/base/SkTArray.h"
#include "src/base/SkArenaAlloc.h"
#include "src/core/SkRasterPipeline.h"
#include "src/core/SkRasterPipelineOpContexts.h"
#include "src/core/SkRasterPipelineOpList.h"
#include "src/core/SkReadBuffer.h"
#include "src/core/SkWriteBuffer.h"
#include "src/shaders/SkShaderBase.h"
#include "src/shaders/gradients/SkGradientBaseShader.h"
#include <algorithm>
#include <cmath>
#include <cstdint>
#include <utility>
bool SkConicalGradient::FocalData::set(SkScalar r0, SkScalar r1, SkMatrix* matrix) { … }
bool SkConicalGradient::MapToUnitX(const SkPoint &startCenter,
const SkPoint &endCenter,
SkMatrix* dstMatrix) { … }
sk_sp<SkShader> SkConicalGradient::Create(const SkPoint& c0,
SkScalar r0,
const SkPoint& c1,
SkScalar r1,
const Descriptor& desc,
const SkMatrix* localMatrix) { … }
SkConicalGradient::SkConicalGradient(const SkPoint& start,
SkScalar startRadius,
const SkPoint& end,
SkScalar endRadius,
const Descriptor& desc,
Type type,
const SkMatrix& gradientMatrix,
const FocalData& data)
: … { … }
bool SkConicalGradient::isOpaque() const { … }
SkShaderBase::GradientType SkConicalGradient::asGradient(GradientInfo* info,
SkMatrix* localMatrix) const { … }
sk_sp<SkFlattenable> SkConicalGradient::CreateProc(SkReadBuffer& buffer) { … }
void SkConicalGradient::flatten(SkWriteBuffer& buffer) const { … }
void SkConicalGradient::appendGradientStages(SkArenaAlloc* alloc,
SkRasterPipeline* p,
SkRasterPipeline* postPipeline) const { … }
#define EXPAND_1_COLOR …
sk_sp<SkShader> SkGradientShader::MakeTwoPointConical(const SkPoint& start,
SkScalar startRadius,
const SkPoint& end,
SkScalar endRadius,
const SkColor4f colors[],
sk_sp<SkColorSpace> colorSpace,
const SkScalar pos[],
int colorCount,
SkTileMode mode,
const Interpolation& interpolation,
const SkMatrix* localMatrix) { … }
#undef EXPAND_1_COLOR
sk_sp<SkShader> SkGradientShader::MakeTwoPointConical(const SkPoint& start,
SkScalar startRadius,
const SkPoint& end,
SkScalar endRadius,
const SkColor colors[],
const SkScalar pos[],
int colorCount,
SkTileMode mode,
uint32_t flags,
const SkMatrix* localMatrix) { … }
void SkRegisterConicalGradientShaderFlattenable() { … }