@@ -44,73 +44,3 @@ uint32_t fourcc_from_wl_shm(enum wl_shm_format in)
4444
4545 return in ;
4646}
47-
48- bool fourcc_to_pixman_fmt (pixman_format_code_t * dst , uint32_t src )
49- {
50- assert (!(src & DRM_FORMAT_BIG_ENDIAN ));
51-
52- #define LOWER_R r
53- #define LOWER_G g
54- #define LOWER_B b
55- #define LOWER_A a
56- #define LOWER_X x
57- #define LOWER_
58- #define LOWER (x ) LOWER_##x
59-
60- #define CONCAT_ (a , b ) a ## b
61- #define CONCAT (a , b ) CONCAT_(a, b)
62-
63- #define FMT_DRM (x , y , z , v , a , b , c , d ) DRM_FORMAT_##x##y##z##v##a##b##c##d
64-
65- #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
66- #define FMT_PIXMAN (x , y , z , v , a , b , c , d ) \
67- CONCAT(CONCAT(CONCAT(CONCAT(CONCAT(CONCAT(CONCAT(CONCAT(\
68- PIXMAN_, LOWER(x)), a), LOWER(y)), b), LOWER(z)), c), LOWER(v)), d)
69- #else
70- #define FMT_PIXMAN (x , y , z , v , a , b , c , d ) \
71- CONCAT(CONCAT(CONCAT(CONCAT(CONCAT(CONCAT(CONCAT(CONCAT(\
72- PIXMAN_, LOWER(v)), d), LOWER(z)), c), LOWER(y)), b), LOWER(x)), a)
73- #endif
74-
75- switch (src ) {
76- #define X (...) \
77- case FMT_DRM(__VA_ARGS__): *dst = FMT_PIXMAN(__VA_ARGS__); break
78-
79- /* 32 bits */
80- X (A ,R ,G ,B ,8 ,8 ,8 ,8 );
81- X (A ,B ,G ,R ,8 ,8 ,8 ,8 );
82- X (X ,R ,G ,B ,8 ,8 ,8 ,8 );
83- X (X ,B ,G ,R ,8 ,8 ,8 ,8 );
84- X (R ,G ,B ,A ,8 ,8 ,8 ,8 );
85- X (B ,G ,R ,A ,8 ,8 ,8 ,8 );
86- X (R ,G ,B ,X ,8 ,8 ,8 ,8 );
87- X (B ,G ,R ,X ,8 ,8 ,8 ,8 );
88-
89- /* 24 bits */
90- X (R ,G ,B ,,8 ,8 ,8 , );
91- X (B ,G ,R ,,8 ,8 ,8 , );
92-
93- /* 16 bits */
94- X (R ,G ,B ,,5 ,6 ,5 , );
95- X (B ,G ,R ,,5 ,6 ,5 , );
96-
97- /* These are incompatible on big endian */
98- #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
99- X (A ,R ,G ,B ,1 ,5 ,5 ,5 );
100- X (A ,B ,G ,R ,1 ,5 ,5 ,5 );
101- X (X ,R ,G ,B ,1 ,5 ,5 ,5 );
102- X (X ,B ,G ,R ,1 ,5 ,5 ,5 );
103- X (A ,R ,G ,B ,4 ,4 ,4 ,4 );
104- X (A ,B ,G ,R ,4 ,4 ,4 ,4 );
105- X (X ,R ,G ,B ,4 ,4 ,4 ,4 );
106- X (X ,B ,G ,R ,4 ,4 ,4 ,4 );
107- #endif
108-
109- #undef X
110-
111- default : return false;
112- }
113-
114- return true;
115- }
116-
0 commit comments