diff options
| author | Rémi Verschelde | 2016-10-11 20:44:26 +0200 |
|---|---|---|
| committer | Rémi Verschelde | 2016-10-15 11:50:39 +0200 |
| commit | b1e8889d969f5f88539c47c2afac6c9ea2a2dc11 (patch) | |
| tree | e5d3cec5db3c03d59f257ee94ecbefa48956a602 /thirdparty/pvrtccompressor/PvrTcPacket.h | |
| parent | c31ad71f10f68705a456b4257c084d4008c34370 (diff) | |
| download | godot-b1e8889d969f5f88539c47c2afac6c9ea2a2dc11.tar.gz godot-b1e8889d969f5f88539c47c2afac6c9ea2a2dc11.tar.zst godot-b1e8889d969f5f88539c47c2afac6c9ea2a2dc11.zip | |
Diffstat (limited to 'thirdparty/pvrtccompressor/PvrTcPacket.h')
| -rw-r--r-- | thirdparty/pvrtccompressor/PvrTcPacket.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/thirdparty/pvrtccompressor/PvrTcPacket.h b/thirdparty/pvrtccompressor/PvrTcPacket.h new file mode 100644 index 000000000..ac3b6a4dd --- /dev/null +++ b/thirdparty/pvrtccompressor/PvrTcPacket.h @@ -0,0 +1,65 @@ +//============================================================================ +// +// Modulation data specifies weightings of colorA to colorB for each pixel +// +// For mode = 0 +// 00: 0/8 +// 01: 3/8 +// 10: 5/8 +// 11: 8/8 +// +// For mode = 1 +// 00: 0/8 +// 01: 4/8 +// 10: 4/8 with alpha punchthrough +// 11: 8/8 +// +// For colorIsOpaque=0 +// 3 bits A +// 4 bits R +// 4 bits G +// 3/4 bits B +// +// For colorIsOpaque=1 +// 5 bits R +// 5 bits G +// 4/5 bits B +// +//============================================================================ + +#pragma once +#include "ColorRgba.h" + +//============================================================================ + +namespace Javelin +{ +//============================================================================ + + struct PvrTcPacket + { + unsigned int modulationData; + unsigned usePunchthroughAlpha : 1; + unsigned colorA : 14; + unsigned colorAIsOpaque : 1; + unsigned colorB : 15; + unsigned colorBIsOpaque : 1; + + ColorRgb<int> GetColorRgbA() const; + ColorRgb<int> GetColorRgbB() const; + ColorRgba<int> GetColorRgbaA() const; + ColorRgba<int> GetColorRgbaB() const; + + void SetColorA(const ColorRgb<unsigned char>& c); + void SetColorB(const ColorRgb<unsigned char>& c); + + void SetColorA(const ColorRgba<unsigned char>& c); + void SetColorB(const ColorRgba<unsigned char>& c); + + static const unsigned char BILINEAR_FACTORS[16][4]; + static const unsigned char WEIGHTS[8][4]; + }; + +//============================================================================ +} // namespace Javelin +//============================================================================ |
