summaryrefslogtreecommitdiffstats
path: root/externals/stb/stb_dxt.h
blob: 07d1d1de4330c769306e4fda6889a5b484eceb19 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// SPDX-FileCopyrightText: fabian "ryg" giesen
// SPDX-License-Identifier: MIT

// stb_dxt.h - v1.12 - DXT1/DXT5 compressor

#ifndef STB_INCLUDE_STB_DXT_H
#define STB_INCLUDE_STB_DXT_H

#ifdef __cplusplus
extern "C" {
#endif

#ifdef STB_DXT_STATIC
#define STBDDEF static
#else
#define STBDDEF extern
#endif

// compression mode (bitflags)
#define STB_DXT_NORMAL 0
#define STB_DXT_DITHER 1 // use dithering. was always dubious, now deprecated. does nothing!
#define STB_DXT_HIGHQUAL                                                                           \
    2 // high quality mode, does two refinement steps instead of 1. ~30-40% slower.

STBDDEF void stb_compress_bc1_block(unsigned char* dest,
                                    const unsigned char* src_rgba_four_bytes_per_pixel, int alpha,
                                    int mode);

STBDDEF void stb_compress_bc3_block(unsigned char* dest, const unsigned char* src, int mode);

#define STB_COMPRESS_DXT_BLOCK

#ifdef __cplusplus
}
#endif
#endif // STB_INCLUDE_STB_DXT_H