]> git.cworth.org Git - vogl/blob - src/voglcore/vogl_ryg_dxt.hpp
Initial vogl checkin
[vogl] / src / voglcore / vogl_ryg_dxt.hpp
1 // File: ryg_dxt.hpp\r
2 #pragma once\r
3 \r
4 #include "vogl_core.h"\r
5 #include "vogl_ryg_types.hpp"\r
6 \r
7 namespace ryg_dxt\r
8 {\r
9    extern sU8 Expand5[32];\r
10    extern sU8 Expand6[64];\r
11    extern sU8 OMatch5[256][2];\r
12    extern sU8 OMatch6[256][2];\r
13    extern sU8 OMatch5_3[256][2];\r
14    extern sU8 OMatch6_3[256][2];\r
15    extern sU8 QuantRBTab[256+16];\r
16    extern sU8 QuantGTab[256+16];\r
17 \r
18    // initialize DXT codec. only needs to be called once.\r
19    void sInitDXT();\r
20 \r
21    // input: a 4x4 pixel block, A8R8G8B8. you need to handle boundary cases\r
22    // yourself.\r
23    // alpha=sTRUE => use DXT5 (else use DXT1)\r
24    // quality: 0=fastest (no dither), 1=medium (dither)\r
25    void sCompressDXTBlock(sU8 *dest,const sU32 *src,sBool alpha,sInt quality);\r
26    \r
27    void sCompressDXT5ABlock(sU8 *dest,const sU32 *src,sInt quality);\r
28 \r
29 } // namespace ryg_dxt\r
30 \r