//CFTTColour - [2020-04-13 11:57:46]
#ifndef _CFTTCOLOUR_H_
#define _CFTTCOLOUR_H_

#include "common.h"
#include "CFTTVector32.h"
/*
001913B0 CFTTColour::GetRInt()
001913CC CFTTColour::GetGInt()
001913E8 CFTTColour::GetBInt()
001AC39C CFTTColour::SetColourARGB(uint a)
001AC3F8 CFTTColour::GetARGBU32()
001B0A28 CFTTColour::GetPlatformU32()
00262E04 CFTTColour::SetFromHsv(CFTTColourHsv const& pHsv)
00263000 CFTTColour::SetFromHsl(CFTTColourHsl const& pHsl)
002630CC CFTTColour::HslValue(float f1, float f2, float f3)

00262F08 CFTTColourHsv::SetFromColour(CFTTColour const&)
色调，饱和度，亮度
00263164 CFTTColourHsl::SetFromColour(CFTTColour const&)

00191404 XColCopyAlpha(uint,uint)
0019140C XMultCol(uint,uint)
001914B0 XAddCol(uint,uint)
001914E0 XSubCol(uint,uint)
00191528 XMixCol(uint,uint,float)
00191620 XColAlpha(uint,float)
00191624 MixCol(uint,uint,int)
00191690 XColContrastBrightness(uint,float,float)
0019177C XGetContrastBWCol(uint)

*/

//00191404
void XColCopyAlpha(uint, uint);

//0019140C
uint XMultCol(uint, uint);

//001914B0
uint XAddCol(uint, uint);

//001914E0
int XSubCol(uint, uint);

//00191528
uint XMixCol(uint, uint, float);

//00191620
uint XColAlpha(uint, float);

//00191624
uint32 MixCol(uint, uint, int);

//00191690
void XColContrastBrightness(uint, float, float);

//0019177C
void XGetContrastBWCol(uint);

//001779A0
CFTTVector32  XYZtoLab(CFTTVector32 xyz);
//00177808
CFTTVector32  RGBtoXYZ(uint rgb1);
//00177AAC
CFTTVector32 RGBtoLab(uint i1);

class CFTTColour;
//-------------------------------------------------------------------------------------------------
class CFTTColourHsv {
public:
  void SetFromColour(CFTTColour const& pColour);  //00262F08
};
//-------------------------------------------------------------------------------------------------
class CFTTColourHsl {
public:
  void SetFromColour(CFTTColour const& pColour);  //00263164
};
//-------------------------------------------------------------------------------------------------
class CFTTColour {
public:
  int GetRInt();                               //001913B0
  int GetGInt();                               //001913CC
  int GetBInt();                               //001913E8
  int SetColourARGB(uint a);                   //001AC39C
  int GetARGBU32() const;                      //001AC3F8
  int GetPlatformU32() const;                  //001B0A28
  int SetFromHsv(CFTTColourHsv const& pHsv);   //00262E04
  int SetFromHsl(CFTTColourHsl const& pHsl);   //00263000
  int HslValue(float f1, float f2, float f3);  //002630CC

  float fR_0;
  float fG_4;
  float fB_8;
  float fA_C;
};

#endif  //_CFTTCOLOUR_H_