MCPcopy Create free account
hub / github.com/GPUOpen-Tools/compressonator / CompressBlockBC5

Function CompressBlockBC5

cmp_core/shaders/bc5_encode_kernel.cpp:269–317  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

267}
268
269int CMP_CDECL CompressBlockBC5(const CGU_UINT8* srcBlockR,
270 unsigned int srcStrideInBytes1,
271 const CGU_UINT8* srcBlockG,
272 unsigned int srcStrideInBytes2,
273 CMP_GLOBAL CGU_UINT8 cmpBlock[16],
274 const void* options = NULL)
275{
276 CGU_UINT8 inBlockR[16];
277
278 //----------------------------------
279 // Fill the inBlock with source data
280 //----------------------------------
281 CGU_INT srcpos = 0;
282 CGU_INT dstptr = 0;
283 for (CGU_UINT8 row = 0; row < 4; row++)
284 {
285 srcpos = row * srcStrideInBytes1;
286 for (CGU_UINT8 col = 0; col < 4; col++)
287 {
288 inBlockR[dstptr++] = CGU_UINT8(srcBlockR[srcpos++]);
289 }
290 }
291
292 CGU_UINT8 inBlockG[16];
293 //----------------------------------
294 // Fill the inBlock with source data
295 //----------------------------------
296 srcpos = 0;
297 dstptr = 0;
298 for (CGU_UINT8 row = 0; row < 4; row++)
299 {
300 srcpos = row * srcStrideInBytes2;
301 for (CGU_UINT8 col = 0; col < 4; col++)
302 {
303 inBlockG[dstptr++] = CGU_UINT8(srcBlockG[srcpos++]);
304 }
305 }
306
307 CMP_BC15Options* BC15options = (CMP_BC15Options*)options;
308 CMP_BC15Options BC15optionsDefault;
309 if (BC15options == NULL)
310 {
311 BC15options = &BC15optionsDefault;
312 SetDefaultBC15Options(BC15options);
313 }
314
315 CompressBlockBC5_DualChannel_Internal(inBlockR, inBlockG, (CMP_GLOBAL CGU_UINT32*)cmpBlock, BC15options);
316 return CGU_CORE_OK;
317}
318
319int CMP_CDECL DecompressBlockBC5(const CGU_UINT8 cmpBlock[16],
320 CMP_GLOBAL CGU_UINT8 srcBlockR[16],

Callers 3

core_tests.cppFile · 0.85
mainFunction · 0.85
mainFunction · 0.85

Calls 2

SetDefaultBC15OptionsFunction · 0.85

Tested by 1

mainFunction · 0.68