#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "third_party/blink/renderer/platform/graphics/filters/fe_component_transfer.h"
#include <algorithm>
#include "base/types/optional_util.h"
#include "third_party/blink/renderer/platform/graphics/filters/paint_filter_builder.h"
#include "third_party/blink/renderer/platform/wtf/math_extras.h"
#include "third_party/blink/renderer/platform/wtf/text/text_stream.h"
namespace blink {
TransferType;
FEComponentTransfer::FEComponentTransfer(
Filter* filter,
const ComponentTransferFunction& red_func,
const ComponentTransferFunction& green_func,
const ComponentTransferFunction& blue_func,
const ComponentTransferFunction& alpha_func)
: … { … }
static void Identity(unsigned char*, const ComponentTransferFunction&) { … }
static void Table(unsigned char* values,
const ComponentTransferFunction& transfer_function) { … }
static void Discrete(unsigned char* values,
const ComponentTransferFunction& transfer_function) { … }
static void Linear(unsigned char* values,
const ComponentTransferFunction& transfer_function) { … }
static void Gamma(unsigned char* values,
const ComponentTransferFunction& transfer_function) { … }
bool FEComponentTransfer::AffectsTransparentPixels() const { … }
sk_sp<PaintFilter> FEComponentTransfer::CreateImageFilter() { … }
void FEComponentTransfer::GetValues(unsigned char r_values[256],
unsigned char g_values[256],
unsigned char b_values[256],
unsigned char a_values[256]) { … }
static WTF::TextStream& operator<<(WTF::TextStream& ts,
const ComponentTransferType& type) { … }
static WTF::TextStream& operator<<(WTF::TextStream& ts,
const ComponentTransferFunction& function) { … }
WTF::TextStream& FEComponentTransfer::ExternalRepresentation(
WTF::TextStream& ts,
int indent) const { … }
}