MCPcopy Create free account
hub / github.com/KhronosGroup/KTX-Software / writeHeader

Function writeHeader

external/dfdutils/createdfd.c:27–63  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

25typedef enum { i_COLOR, i_NON_COLOR } channels_infotype;
26
27static uint32_t *writeHeader(int numSamples, int bytes, int suffix,
28 channels_infotype infotype)
29{
30 uint32_t *DFD = (uint32_t *) malloc(sizeof(uint32_t) *
31 (1 + KHR_DF_WORD_SAMPLESTART +
32 numSamples * KHR_DF_WORD_SAMPLEWORDS));
33 uint32_t* BDFD = DFD+1;
34 DFD[0] = sizeof(uint32_t) *
35 (1 + KHR_DF_WORD_SAMPLESTART +
36 numSamples * KHR_DF_WORD_SAMPLEWORDS);
37 BDFD[KHR_DF_WORD_VENDORID] =
38 (KHR_DF_VENDORID_KHRONOS << KHR_DF_SHIFT_VENDORID) |
39 (KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT << KHR_DF_SHIFT_DESCRIPTORTYPE);
40 BDFD[KHR_DF_WORD_VERSIONNUMBER] =
41 (KHR_DF_VERSIONNUMBER_LATEST << KHR_DF_SHIFT_VERSIONNUMBER) |
42 (((uint32_t)sizeof(uint32_t) *
43 (KHR_DF_WORD_SAMPLESTART +
44 numSamples * KHR_DF_WORD_SAMPLEWORDS)
45 << KHR_DF_SHIFT_DESCRIPTORBLOCKSIZE));
46 BDFD[KHR_DF_WORD_MODEL] =
47 ((KHR_DF_MODEL_RGBSDA << KHR_DF_SHIFT_MODEL) | /* Only supported model */
48 (KHR_DF_FLAG_ALPHA_STRAIGHT << KHR_DF_SHIFT_FLAGS));
49 if (infotype == i_COLOR) {
50 BDFD[KHR_DF_WORD_PRIMARIES] |= KHR_DF_PRIMARIES_BT709 << KHR_DF_SHIFT_PRIMARIES; /* Assumed */
51 } else {
52 BDFD[KHR_DF_WORD_PRIMARIES] |= KHR_DF_PRIMARIES_UNSPECIFIED << KHR_DF_SHIFT_PRIMARIES;
53 }
54 if (suffix == s_SRGB) {
55 BDFD[KHR_DF_WORD_TRANSFER] |= KHR_DF_TRANSFER_SRGB << KHR_DF_SHIFT_TRANSFER;
56 } else {
57 BDFD[KHR_DF_WORD_TRANSFER] |= KHR_DF_TRANSFER_LINEAR << KHR_DF_SHIFT_TRANSFER;
58 }
59 BDFD[KHR_DF_WORD_TEXELBLOCKDIMENSION0] = 0; /* Only 1x1x1x1 texel blocks supported */
60 BDFD[KHR_DF_WORD_BYTESPLANE0] = bytes; /* bytesPlane0 = bytes, bytesPlane3..1 = 0 */
61 BDFD[KHR_DF_WORD_BYTESPLANE4] = 0; /* bytesPlane7..5 = 0 */
62 return DFD;
63}
64
65static uint32_t setChannelFlags(uint32_t channel, enum VkSuffix suffix)
66{

Callers 4

createDFDUnpackedFunction · 0.85
createDFDPackedShiftedFunction · 0.85
createDFDDepthStencilFunction · 0.85
createDFDAlphaFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected