4040#define UNPACK_2 (b ) (((b) * ((1 << (sizeof (component_type) * 8)) - 1) + \
4141 1) / 3)
4242#define UNPACK_4 (b ) (((b) * ((1 << (sizeof (component_type) * 8)) - 1) + \
43- 7) / 15 )
43+ 7) / 0xf )
4444#define UNPACK_5 (b ) (((b) * ((1 << (sizeof (component_type) * 8)) - 1) + \
45- 15 ) / 31 )
45+ 0xf ) / 0x1f )
4646#define UNPACK_6 (b ) (((b) * ((1 << (sizeof (component_type) * 8)) - 1) + \
47- 31 ) / 63 )
47+ 0x1f ) / 0x3f )
4848#define UNPACK_10 (b ) (((b) * ((1 << (sizeof (component_type) * 8)) - 1) + \
49- 511 ) / 1023 )
49+ 0x1ff ) / 0x3ff )
5050
5151inline static void
5252G_PASTE (_cogl_unpack_a_8_ , component_size ) (const uint8_t * src ,
@@ -207,8 +207,8 @@ G_PASTE (_cogl_unpack_rgb_565_, component_size) (const uint8_t *src,
207207 uint16_t v = * (const uint16_t * ) src ;
208208
209209 dst [0 ] = UNPACK_5 (v >> 11 );
210- dst [1 ] = UNPACK_6 ((v >> 5 ) & 63 );
211- dst [2 ] = UNPACK_5 (v & 31 );
210+ dst [1 ] = UNPACK_6 ((v >> 5 ) & 0x3f );
211+ dst [2 ] = UNPACK_5 (v & 0x1f );
212212 dst [3 ] = UNPACK_BYTE (255 );
213213 dst += 4 ;
214214 src += 2 ;
@@ -225,9 +225,9 @@ G_PASTE (_cogl_unpack_rgba_4444_, component_size) (const uint8_t *src,
225225 uint16_t v = * (const uint16_t * ) src ;
226226
227227 dst [0 ] = UNPACK_4 (v >> 12 );
228- dst [1 ] = UNPACK_4 ((v >> 8 ) & 15 );
229- dst [2 ] = UNPACK_4 ((v >> 4 ) & 15 );
230- dst [3 ] = UNPACK_4 (v & 15 );
228+ dst [1 ] = UNPACK_4 ((v >> 8 ) & 0xf );
229+ dst [2 ] = UNPACK_4 ((v >> 4 ) & 0xf );
230+ dst [3 ] = UNPACK_4 (v & 0xf );
231231 dst += 4 ;
232232 src += 2 ;
233233 }
@@ -243,8 +243,8 @@ G_PASTE (_cogl_unpack_rgba_5551_, component_size) (const uint8_t *src,
243243 uint16_t v = * (const uint16_t * ) src ;
244244
245245 dst [0 ] = UNPACK_5 (v >> 11 );
246- dst [1 ] = UNPACK_5 ((v >> 6 ) & 31 );
247- dst [2 ] = UNPACK_5 ((v >> 1 ) & 31 );
246+ dst [1 ] = UNPACK_5 ((v >> 6 ) & 0x1f );
247+ dst [2 ] = UNPACK_5 ((v >> 1 ) & 0x1f );
248248 dst [3 ] = UNPACK_1 (v & 1 );
249249 dst += 4 ;
250250 src += 2 ;
@@ -261,8 +261,8 @@ G_PASTE (_cogl_unpack_rgba_1010102_, component_size) (const uint8_t *src,
261261 uint32_t v = * (const uint32_t * ) src ;
262262
263263 dst [0 ] = UNPACK_10 (v >> 22 );
264- dst [1 ] = UNPACK_10 ((v >> 12 ) & 1023 );
265- dst [2 ] = UNPACK_10 ((v >> 2 ) & 1023 );
264+ dst [1 ] = UNPACK_10 ((v >> 12 ) & 0x3ff );
265+ dst [2 ] = UNPACK_10 ((v >> 2 ) & 0x3ff );
266266 dst [3 ] = UNPACK_2 (v & 3 );
267267 dst += 4 ;
268268 src += 2 ;
@@ -279,8 +279,8 @@ G_PASTE (_cogl_unpack_bgra_1010102_, component_size) (const uint8_t *src,
279279 uint32_t v = * (const uint32_t * ) src ;
280280
281281 dst [2 ] = UNPACK_10 (v >> 22 );
282- dst [1 ] = UNPACK_10 ((v >> 12 ) & 1023 );
283- dst [0 ] = UNPACK_10 ((v >> 2 ) & 1023 );
282+ dst [1 ] = UNPACK_10 ((v >> 12 ) & 0x3ff );
283+ dst [0 ] = UNPACK_10 ((v >> 2 ) & 0x3ff );
284284 dst [3 ] = UNPACK_2 (v & 3 );
285285 dst += 4 ;
286286 src += 2 ;
@@ -297,9 +297,9 @@ G_PASTE (_cogl_unpack_argb_2101010_, component_size) (const uint8_t *src,
297297 uint32_t v = * (const uint32_t * ) src ;
298298
299299 dst [3 ] = UNPACK_2 (v >> 30 );
300- dst [0 ] = UNPACK_10 ((v >> 20 ) & 1023 );
301- dst [1 ] = UNPACK_10 ((v >> 10 ) & 1023 );
302- dst [2 ] = UNPACK_10 (v & 1023 );
300+ dst [0 ] = UNPACK_10 ((v >> 20 ) & 0x3ff );
301+ dst [1 ] = UNPACK_10 ((v >> 10 ) & 0x3ff );
302+ dst [2 ] = UNPACK_10 (v & 0x3ff );
303303 dst += 4 ;
304304 src += 2 ;
305305 }
@@ -315,14 +315,22 @@ G_PASTE (_cogl_unpack_abgr_2101010_, component_size) (const uint8_t *src,
315315 uint32_t v = * (const uint32_t * ) src ;
316316
317317 dst [3 ] = UNPACK_2 (v >> 30 );
318- dst [2 ] = UNPACK_10 ((v >> 20 ) & 1023 );
319- dst [1 ] = UNPACK_10 ((v >> 10 ) & 1023 );
320- dst [0 ] = UNPACK_10 (v & 1023 );
318+ dst [2 ] = UNPACK_10 ((v >> 20 ) & 0x3ff );
319+ dst [1 ] = UNPACK_10 ((v >> 10 ) & 0x3ff );
320+ dst [0 ] = UNPACK_10 (v & 0x3ff );
321321 dst += 4 ;
322322 src += 2 ;
323323 }
324324}
325325
326+ inline static void
327+ G_PASTE (_cogl_unpack_argb_fp_16161616_ , component_size ) (const uint8_t * src ,
328+ component_type * dst ,
329+ int width )
330+ {
331+ g_warning ("Not implemented" );
332+ }
333+
326334#undef UNPACK_1
327335#undef UNPACK_2
328336#undef UNPACK_4
@@ -396,6 +404,16 @@ G_PASTE (_cogl_unpack_, component_size) (CoglPixelFormat format,
396404 case COGL_PIXEL_FORMAT_ABGR_2101010_PRE :
397405 G_PASTE (_cogl_unpack_abgr_2101010_ , component_size ) (src , dst , width );
398406 break ;
407+ case COGL_PIXEL_FORMAT_RGBA_FP_16161616 :
408+ case COGL_PIXEL_FORMAT_BGRA_FP_16161616 :
409+ case COGL_PIXEL_FORMAT_ARGB_FP_16161616 :
410+ case COGL_PIXEL_FORMAT_ABGR_FP_16161616 :
411+ case COGL_PIXEL_FORMAT_RGBA_FP_16161616_PRE :
412+ case COGL_PIXEL_FORMAT_BGRA_FP_16161616_PRE :
413+ case COGL_PIXEL_FORMAT_ARGB_FP_16161616_PRE :
414+ case COGL_PIXEL_FORMAT_ABGR_FP_16161616_PRE :
415+ G_PASTE (_cogl_unpack_argb_fp_16161616_ , component_size ) (src , dst , width );
416+ break ;
399417 case COGL_PIXEL_FORMAT_DEPTH_16 :
400418 case COGL_PIXEL_FORMAT_DEPTH_32 :
401419 case COGL_PIXEL_FORMAT_DEPTH_24_STENCIL_8 :
@@ -414,10 +432,10 @@ G_PASTE (_cogl_unpack_, component_size) (CoglPixelFormat format,
414432
415433#define PACK_1 (b ) PACK_SIZE (b, 1)
416434#define PACK_2 (b ) PACK_SIZE (b, 3)
417- #define PACK_4 (b ) PACK_SIZE (b, 15 )
418- #define PACK_5 (b ) PACK_SIZE (b, 31 )
419- #define PACK_6 (b ) PACK_SIZE (b, 63 )
420- #define PACK_10 (b ) PACK_SIZE (b, 1023 )
435+ #define PACK_4 (b ) PACK_SIZE (b, 0xf )
436+ #define PACK_5 (b ) PACK_SIZE (b, 0x1f )
437+ #define PACK_6 (b ) PACK_SIZE (b, 0x3f )
438+ #define PACK_10 (b ) PACK_SIZE (b, 0x3ff )
421439
422440inline static void
423441G_PASTE (_cogl_pack_a_8_ , component_size ) (const component_type * src ,
@@ -432,6 +450,16 @@ G_PASTE (_cogl_pack_a_8_, component_size) (const component_type *src,
432450 }
433451}
434452
453+ inline static void
454+
455+
456+ G_PASTE (_cogl_pack_argb_fp_16161616_ , component_size ) (const component_type * src ,
457+ uint8_t * dst ,
458+ int width )
459+ {
460+ g_warning ("Not implemented" );
461+ }
462+
435463inline static void
436464G_PASTE (_cogl_pack_g_8_ , component_size ) (const component_type * src ,
437465 uint8_t * dst ,
@@ -757,6 +785,16 @@ G_PASTE (_cogl_pack_, component_size) (CoglPixelFormat format,
757785 case COGL_PIXEL_FORMAT_ABGR_2101010_PRE :
758786 G_PASTE (_cogl_pack_abgr_2101010_ , component_size ) (src , dst , width );
759787 break ;
788+ case COGL_PIXEL_FORMAT_RGBA_FP_16161616 :
789+ case COGL_PIXEL_FORMAT_BGRA_FP_16161616 :
790+ case COGL_PIXEL_FORMAT_ARGB_FP_16161616 :
791+ case COGL_PIXEL_FORMAT_ABGR_FP_16161616 :
792+ case COGL_PIXEL_FORMAT_RGBA_FP_16161616_PRE :
793+ case COGL_PIXEL_FORMAT_BGRA_FP_16161616_PRE :
794+ case COGL_PIXEL_FORMAT_ARGB_FP_16161616_PRE :
795+ case COGL_PIXEL_FORMAT_ABGR_FP_16161616_PRE :
796+ G_PASTE (_cogl_pack_argb_fp_16161616_ , component_size ) (src , dst , width );
797+ break ;
760798 case COGL_PIXEL_FORMAT_DEPTH_16 :
761799 case COGL_PIXEL_FORMAT_DEPTH_32 :
762800 case COGL_PIXEL_FORMAT_DEPTH_24_STENCIL_8 :
0 commit comments