#ifndef CORE_FXGE_DIB_FX_DIB_H_
#define CORE_FXGE_DIB_FX_DIB_H_
#include <stdint.h>
#include <utility>
#include "core/fxcrt/compiler_specific.h"
enum class FXDIB_Format : uint16_t { … };
FX_ARGB;
FX_CMYK;
FX_COLORREF;
template <typename T>
struct FX_RGB_STRUCT { … };
template <typename T>
struct FX_BGR_STRUCT { … };
template <typename T>
struct FX_ARGB_STRUCT { … };
template <typename T>
struct FX_ABGR_STRUCT { … };
template <typename T>
struct FX_RGBA_STRUCT { … };
template <typename T>
struct FX_BGRA_STRUCT { … };
template <typename T>
struct FX_CMYK_STRUCT { … };
template <typename T>
struct FX_LAB_STRUCT { … };
struct FXDIB_ResampleOptions { … };
enum class BlendMode { … };
constexpr uint32_t FXSYS_BGR(uint8_t b, uint8_t g, uint8_t r) { … }
constexpr uint8_t FXSYS_GetRValue(uint32_t bgr) { … }
constexpr uint8_t FXSYS_GetGValue(uint32_t bgr) { … }
constexpr uint8_t FXSYS_GetBValue(uint32_t bgr) { … }
constexpr unsigned int FXSYS_GetUnsignedAlpha(float alpha) { … }
inline int GetBppFromFormat(FXDIB_Format format) { … }
inline int GetCompsFromFormat(FXDIB_Format format) { … }
inline bool GetIsMaskFromFormat(FXDIB_Format format) { … }
inline bool GetIsAlphaFromFormat(FXDIB_Format format) { … }
FX_BGRA_STRUCT<uint8_t> ArgbToBGRAStruct(FX_ARGB argb);
FX_BGR_STRUCT<uint8_t> ArgbToBGRStruct(FX_ARGB argb);
std::pair<uint8_t, FX_COLORREF> ArgbToAlphaAndColorRef(FX_ARGB argb);
FX_COLORREF ArgbToColorRef(FX_ARGB argb);
FX_ARGB AlphaAndColorRefToArgb(int a, FX_COLORREF colorref);
constexpr FX_ARGB ArgbEncode(uint32_t a, uint32_t r, uint32_t g, uint32_t b) { … }
constexpr FX_CMYK CmykEncode(uint32_t c, uint32_t m, uint32_t y, uint32_t k) { … }
#define FXARGB_A(argb) …
#define FXARGB_R(argb) …
#define FXARGB_G(argb) …
#define FXARGB_B(argb) …
#define FXARGB_MUL_ALPHA(argb, alpha) …
#define FXRGB2GRAY(r, g, b) …
#define FXDIB_ALPHA_MERGE(backdrop, source, source_alpha) …
#define FXCMYK_TODIB(cmyk) …
#define FXARGB_TOBGRORDERDIB(argb) …
UNSAFE_BUFFER_USAGE inline FX_ARGB FXARGB_GetDIB(const uint8_t* p) { … }
UNSAFE_BUFFER_USAGE inline void FXARGB_SetDIB(uint8_t* p, uint32_t argb) { … }
UNSAFE_BUFFER_USAGE inline void FXARGB_SetRGBOrderDIB(uint8_t* p,
uint32_t argb) { … }
UNSAFE_BUFFER_USAGE inline void ReverseCopy3Bytes(uint8_t* dest,
const uint8_t* src) { … }
#if defined(PDF_USE_SKIA)
template <typename T>
T PreMultiplyColor(const T& input) { … }
template <typename T>
T UnPreMultiplyColor(const T& input) { … }
#endif
#endif