File size: 3,868 Bytes
41f85e5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*
 * Copyright (c) 2023, Shukant Pal and Contributors
 * SPDX-License-Identifier: Apache-2.0
 */

#ifndef KTX_TEXTURE2_H_9E005417467F4F98A33ACF592FE1D6FE
#define KTX_TEXTURE2_H_9E005417467F4F98A33ACF592FE1D6FE

#include <ktx.h>
#include "ktx_texture.h"

ktxTextureMixed PY_ktxTexture2_Create(ktx_uint32_t glInternalformat,
                                      ktx_uint32_t vkFormat,
                                      ktx_uint32_t *pDfd,
                                      ktx_uint32_t baseWidth,
                                      ktx_uint32_t baseHeight,
                                      ktx_uint32_t baseDepth,
                                      ktx_uint32_t numDimensions,
                                      ktx_uint32_t numLevels,
                                      ktx_uint32_t numLayers,
                                      ktx_uint32_t numFaces,
                                      ktx_bool_t isArray,
                                      ktx_bool_t generateMipmaps,
                                      ktxTextureCreateStorageEnum storageAllocation);

KTX_error_code PY_ktxTexture2_CompressAstcEx(ktxTexture2 *texture,
                                             ktx_bool_t verbose,
                                             ktx_uint32_t threadCount,
                                             ktx_uint32_t blockDimension,
                                             ktx_uint32_t mode,
                                             ktx_uint32_t quality,
                                             ktx_bool_t normalMap,
                                             ktx_bool_t perceptual,
                                             char *inputSwizzle);

KTX_error_code PY_ktxTexture2_CompressBasisEx(ktxTexture2 *texture,
                                              ktx_bool_t uastc,
                                              ktx_bool_t verbose,
                                              ktx_bool_t noSSE,
                                              ktx_uint32_t threadCount,
                                              ktx_uint32_t compressionLevel,
                                              ktx_uint32_t qualityLevel,
                                              ktx_uint32_t maxEndpoints,
                                              float endpointRDOThreshold,
                                              ktx_uint32_t maxSelectors,
                                              float selectorRDOThreshold,
                                              char *inputSwizzle,
                                              ktx_bool_t normalMap,
                                              ktx_bool_t separateRGToRGB_A,
                                              ktx_bool_t preSwizzle,
                                              ktx_bool_t noEndpointRDO,
                                              ktx_bool_t noSelectorRDO,
                                              int uastcFlags,
                                              ktx_bool_t uastcRDO,
                                              float uastcRDOQualityScalar,
                                              ktx_uint32_t uastcRDODictSize,
                                              float uastcRDOMaxSmoothBlockErrorScale,
                                              float uastcRDOMaxSmoothBlockStdDev,
                                              ktx_bool_t uastcRDODontFavorSimplerModes,
                                              ktx_bool_t uastcRDONoMultithreading);

#define KTX2_GETTER(type, prop) \
    type PY_ktxTexture2_get_##prop(ktxTexture2 *texture)

KTX2_GETTER(ktx_uint32_t, vkFormat);
KTX2_GETTER(ktx_uint32_t, supercompressionScheme);

#define KTX2_IMPL(type, prop)       \
KTX2_GETTER(type, prop)             \
{                                   \
    return texture->prop;           \
}

#endif