1 | /* -*- tab-width: 4; -*- */ |
2 | /* vi: set sw=2 ts=4 expandtab textwidth=70: */ |
3 | |
4 | /* |
5 | * Copyright 2019-2020 The Khronos Group Inc. |
6 | * SPDX-License-Identifier: Apache-2.0 |
7 | */ |
8 | |
9 | /** |
10 | * @internal |
11 | * @file texture_funcs.h |
12 | * @~English |
13 | * |
14 | * @brief Templates for functions common to base & derived ktxTexture classes. |
15 | * |
16 | * Define CLASS before including this file. |
17 | */ |
18 | |
19 | #define CAT(c, n) PRIMITIVE_CAT(c, n) |
20 | #define PRIMITIVE_CAT(c, n) c ## _ ## n |
21 | |
22 | #define CLASS_FUNC(name) CAT(CLASS, name) |
23 | |
24 | /* |
25 | ====================================== |
26 | Virtual ktxTexture functions |
27 | ====================================== |
28 | */ |
29 | |
30 | |
31 | void CLASS_FUNC(Destroy)(CLASS* This); |
32 | KTX_error_code CLASS_FUNC(GetImageOffset)(CLASS* This, ktx_uint32_t level, |
33 | ktx_uint32_t layer, |
34 | ktx_uint32_t faceSlice, |
35 | ktx_size_t* pOffset); |
36 | ktx_size_t CLASS_FUNC(GetImageSize)(CLASS* This, ktx_uint32_t level); |
37 | KTX_error_code CLASS_FUNC(GLUpload)(CLASS* This, GLuint* pTexture, |
38 | GLenum* pTarget, GLenum* pGlerror); |
39 | KTX_error_code CLASS_FUNC(IterateLevels)(CLASS* This, |
40 | PFNKTXITERCB iterCb, |
41 | void* userdata); |
42 | KTX_error_code CLASS_FUNC(IterateLevelFaces)(CLASS* This, |
43 | PFNKTXITERCB iterCb, |
44 | void* userdata); |
45 | KTX_error_code CLASS_FUNC(IterateLoadLevelFaces)(CLASS* This, |
46 | PFNKTXITERCB iterCb, |
47 | void* userdata); |
48 | KTX_error_code CLASS_FUNC(LoadImageData)(CLASS* This, |
49 | ktx_uint8_t* pBuffer, |
50 | ktx_size_t bufSize); |
51 | KTX_error_code CLASS_FUNC(SetImageFromStdioStream)(CLASS* This, |
52 | ktx_uint32_t level,ktx_uint32_t layer, |
53 | ktx_uint32_t faceSlice, |
54 | FILE* src, ktx_size_t srcSize); |
55 | KTX_error_code CLASS_FUNC(SetImageFromMemory)(CLASS* This, |
56 | ktx_uint32_t level, ktx_uint32_t layer, |
57 | ktx_uint32_t faceSlice, |
58 | const ktx_uint8_t* src, ktx_size_t srcSize); |
59 | |
60 | KTX_error_code CLASS_FUNC(WriteToStdioStream)(CLASS* This, FILE* dstsstr); |
61 | KTX_error_code CLASS_FUNC(WriteToNamedFile)(CLASS* This, |
62 | const char* const dstname); |
63 | KTX_error_code CLASS_FUNC(WriteToMemory)(CLASS* This, |
64 | ktx_uint8_t** ppDstBytes, ktx_size_t* pSize); |
65 | KTX_error_code CLASS_FUNC(WriteToStream)(CLASS* This, |
66 | ktxStream* dststr); |
67 | |
68 | /* |
69 | ====================================== |
70 | Internal ktxTexture functions |
71 | ====================================== |
72 | */ |
73 | |
74 | |
75 | void CLASS_FUNC(destruct)(CLASS* This); |
76 | |
77 | |